type Component = { html: string | HTMLElement; disable?: boolean; name?: string; index?: number; style?: object; click?: Function; mounted?: Function; tooltip?: string; position?: 'top' | 'left' | 'right'; selector?: { name: string; }[]; onSelect?: Function; }; export default class Artplayer { constructor(option: { container: string | HTMLElement; url: string; poster?: string; title?: string; theme?: string; lang?: 'en' | 'zh-cn' | 'zh-tw'; volume?: number; isLive?: boolean; muted?: boolean; autoplay?: boolean; autoSize?: boolean; autoMini?: boolean; loop?: boolean; flip?: boolean; rotate?: boolean; playbackRate?: boolean; aspectRatio?: boolean; screenshot?: boolean; setting?: boolean; hotkey?: boolean; pip?: boolean; mutex?: boolean; light?: boolean; backdrop?: boolean; fullscreen?: boolean; fullscreenWeb?: boolean; subtitleOffset?: boolean; miniProgressBar?: boolean; localVideo?: boolean; localSubtitle?: boolean; networkMonitor?: boolean; plugins?: Function[]; whitelist?: (string | Function | RegExp)[]; layers?: Component[]; contextmenu?: Component[]; controls?: Component[]; quality?: { default?: boolean; name: string; url: string; }[]; highlight?: { time: number; text: string; }[]; thumbnails?: { url: string; number?: number; width?: number; height?: number; column?: number; }; subtitle?: { url: string; style: object; encoding: string, bilingual: boolean, }; moreVideoAttr?: object; icons?: { [propName: string]: string | HTMLElement; }; customType?: { [propName: string]: Function; }; }); }