-import { logger } from '../../helpers/logger'
import { PluginSettingsManager } from '../../../shared/models/plugins/plugin-settings-manager.model'
import { PluginStorageManager } from '../../../shared/models/plugins/plugin-storage-manager.model'
import { RegisterServerHookOptions } from '../../../shared/models/plugins/register-server-hook.model'
import { PluginVideoCategoryManager } from '../../../shared/models/plugins/plugin-video-category-manager.model'
import { PluginVideoLanguageManager } from '../../../shared/models/plugins/plugin-video-language-manager.model'
import { PluginVideoLicenceManager } from '../../../shared/models/plugins/plugin-video-licence-manager.model'
+import { Logger } from 'winston'
+import { Router } from 'express'
+import { PluginVideoPrivacyManager } from '@shared/models/plugins/plugin-video-privacy-manager.model'
+import { PluginPlaylistPrivacyManager } from '@shared/models/plugins/plugin-playlist-privacy-manager.model'
+
+export type PeerTubeHelpers = {
+ logger: Logger
+
+ database: {
+ query: Function
+ }
+
+ videos: {
+ removeVideo: (videoId: number) => Promise<void>
+ }
+}
export type RegisterServerOptions = {
registerHook: (options: RegisterServerHookOptions) => void
videoLanguageManager: PluginVideoLanguageManager
videoLicenceManager: PluginVideoLicenceManager
- peertubeHelpers: {
- logger: typeof logger
- }
+ videoPrivacyManager: PluginVideoPrivacyManager
+ playlistPrivacyManager: PluginPlaylistPrivacyManager
+
+ // Get plugin router to create custom routes
+ // Base routes of this router are
+ // * /plugins/:pluginName/:pluginVersion/router/...
+ // * /plugins/:pluginName/router/...
+ getRouter(): Router
+
+ peertubeHelpers: PeerTubeHelpers
}