peertube-plugin-livechat/client/@types/peertube.d.ts

80 lines
2.2 KiB
TypeScript
Raw Normal View History

2021-04-09 11:07:42 +00:00
// TODO: import @types/peertube when available
interface RegisterClientHookOptions {
target: string // FIXME
handler: Function
priority?: number
}
interface RegisterClientHelpers {
getBaseStaticRoute: () => string
// NB: getBaseRouterRoute will come with Peertube > 3.2.1 (3.3.0?)
getBaseRouterRoute?: () => string
2021-04-09 11:07:42 +00:00
isLoggedIn: () => boolean
2021-06-11 23:16:57 +00:00
getAuthHeader: () => { 'Authorization': string } | undefined
2021-04-09 11:07:42 +00:00
getSettings: () => Promise<{ [ name: string ]: string }>
notifier: {
info: (text: string, title?: string, timeout?: number) => void
error: (text: string, title?: string, timeout?: number) => void
success: (text: string, title?: string, timeout?: number) => void
}
showModal: (input: {
title: string
content: string
close?: boolean
cancel?: { value: string, action?: () => void }
confirm?: { value: string, action?: () => void }
}) => void
markdownRenderer: {
textMarkdownToHTML: (textMarkdown: string) => Promise<string>
enhancedMarkdownToHTML: (enhancedMarkdown: string) => Promise<string>
}
translate: (toTranslate: string) => Promise<string>
}
interface RegisterClientFormFieldOptions {
name: string
label: string
type: 'input' | 'input-checkbox' | 'input-password' | 'input-textarea' | 'markdown-text' | 'markdown-enhanced'
descriptionHTML?: string
default?: string | boolean
hidden?: (options: any) => boolean
}
interface RegisterClientSettingsScript {
isSettingHidden: (options: {
setting: RegisterClientFormFieldOptions
formValues: { [name: string]: any }
}) => boolean
}
interface RegisterClientVideoFieldOptions {
type: 'update' | 'upload' | 'import-url' | 'import-torrent' | 'go-live'
}
2021-04-07 16:14:58 +00:00
interface RegisterOptions {
2021-04-09 11:07:42 +00:00
registerHook: (options: RegisterClientHookOptions) => void
peertubeHelpers: RegisterClientHelpers
registerSettingsScript: (options: RegisterClientSettingsScript) => void
registerVideoField: (
commonOptions: RegisterClientFormFieldOptions,
videoFormOptions: RegisterClientVideoFieldOptions
) => void
2021-04-07 16:14:58 +00:00
}
interface Video {
isLive: boolean
isLocal: boolean
2021-07-19 13:45:57 +00:00
name: string
2021-04-07 16:14:58 +00:00
originInstanceUrl: string
uuid: string
channel: Channel
}
interface Channel {
id: number
name: string
displayName: string
url: string
host: string
2021-04-07 16:14:58 +00:00
}