-const videojs = require('video.js')
-import { VideoFile } from '../../../../shared/models/videos/video.model'
-import { PeerTubePlugin } from './peertube-videojs-plugin'
+import { HlsConfig, Level } from 'hls.js'
+import videojs from 'video.js'
+import { VideoFile, VideoPlaylist, VideoPlaylistElement } from '@shared/models'
+import { Html5Hlsjs } from './p2p-media-loader/hls-plugin'
+import { P2pMediaLoaderPlugin } from './p2p-media-loader/p2p-media-loader-plugin'
+import { RedundancyUrlManager } from './p2p-media-loader/redundancy-url-manager'
+import { PlayerMode } from './peertube-player-manager'
+import { PeerTubePlugin } from './peertube-plugin'
+import { PeerTubeResolutionsPlugin } from './peertube-resolutions-plugin'
+import { PlaylistPlugin } from './playlist/playlist-plugin'
+import { StatsCardOptions } from './stats/stats-card'
+import { StatsForNerdsPlugin } from './stats/stats-plugin'
+import { EndCardOptions } from './upnext/end-card'
+import { WebTorrentPlugin } from './webtorrent/webtorrent-plugin'
+
+declare module 'video.js' {
+
+ export interface VideoJsPlayer {
+ srOptions_: HlsjsConfigHandlerOptions
+
+ theaterEnabled: boolean
+
+ // FIXME: add it to upstream typings
+ posterImage: {
+ show (): void
+ hide (): void
+ }
+
+ handleTechSeeked_ (): void
+
+ // Plugins