a66caa30beffad446d898f37f6b60b8793d86e17
[oweals/peertube.git] / client / src / assets / player / peertube-videojs-typings.ts
1 import * as videojs from 'video.js'
2 import { VideoFile } from '../../../../shared/models/videos/video.model'
3 import { PeerTubePlugin } from './peertube-videojs-plugin'
4
5 declare module 'video.js' {
6   interface Player {
7     peertube (): PeerTubePlugin
8   }
9 }
10
11 interface VideoJSComponentInterface {
12   _player: videojs.Player
13
14   new (player: videojs.Player, options?: any)
15
16   registerComponent (name: string, obj: any)
17 }
18
19 type PeertubePluginOptions = {
20   videoFiles: VideoFile[]
21   playerElement: HTMLVideoElement
22   videoViewUrl: string
23   videoDuration: number
24   startTime: number
25 }
26
27 // videojs typings don't have some method we need
28 const videojsUntyped = videojs as any
29
30 export {
31   VideoJSComponentInterface,
32   PeertubePluginOptions,
33   videojsUntyped
34 }