import { SFC, Props, IComponentInstance } from "../core/types"; import { IVideoFits } from "../plugins/player"; import initI18n from "../locales/i18n"; import { IWatermarkConfig } from "../plugins/watermark"; type Container = HTMLElement | Element | Node | null; interface IPlaybackProps extends Props { fileID: string; fileName?: string; token: string; puOption?: { puId?: string; nruId?: string; }; apiPrefix?: string; playbackUrl?: string; bvrtcConfig?: { enableWebcodes?: number; realTimeLevel?: number; }; defaultMediaOption?: { audio: boolean; video: boolean; }; container?: Container; locale?: Parameters["0"]; type?: IPlaybackPlayType; zIndexMenu?: number; displayMode?: 'playback'; cryptkey?: string; watermark?: IWatermarkConfig; onCurrentTimeChange?: (params: { current: number; duration: number; }) => void; autoplay?: boolean; onPlaybackError?: (errors: Array<{ protocol: Exclude; reason: string; }>) => void; } type IPlaybackPlayType = "ws-bvrtc" | "web" | "auto"; interface IPlaybackJumpResult { success: boolean; promise?: Promise; reason?: string; } interface IPlaybackOpenResult { jumpToTargetSecond(targetSeconds: number): IPlaybackJumpResult; } interface IPlaybackInstance extends IComponentInstance { open(): Promise; close(): Promise; pause(): Promise; resume(): Promise; emitClick(): void; setVideoFit: (style: "contain" | "fill") => void; setProtocol: (protocol: IPlaybackPlayType) => void; videoFit: keyof IVideoFits; protocol: IPlaybackPlayType; inBusy: boolean; } type helperFunc = { getDefaultProps: () => Partial; setDefaultProps: (props: Partial) => void; }; declare const PlayBack: SFC & helperFunc; export default PlayBack;