import { IComponentInstance, Props, SFC } from "../core/types"; import { IVideoFits } from "../plugins/player"; import { IPuOption } from "./types"; import { IControlPluginMap } from "../plugins/controller"; import { MikeButton } from "./subComponent/mikeButton"; import { CreatePlayerState } from "./subComponent/playState"; import { IWatermarkConfig } from "../plugins/watermark"; type Container = HTMLElement | Element | Node | null; type helperFunc = { getDefaultProps: () => Partial; setDefaultProps: (props: Partial) => void; }; interface MediaInfo { height?: number; width?: number; } export interface IPuPlayerProps extends Props { container?: Container; token: string; type?: "webrtc" | "ws-bvrtc" | "auto"; puOption: IPuOption; defaultMediaOption?: { audio: boolean; video: boolean; }; muted?: boolean; videoFit?: keyof IVideoFits; apiPrefix?: string; testUrl?: string; watermark?: IWatermarkConfig; fullScreenOnDblclick?: boolean; enableController?: boolean; disabledControls?: (keyof IControlPluginMap)[]; onDestroy?(): void; onConnected?(): void; onLoadedMedia?(info?: MediaInfo): void; onConnectedFailed?(): void; onClose?(): void; onDisConnected?(): void; onTokenFail?(): void; maxReconnectInterval?: number; locale?: "zh" | "en"; noVideoRendeAudioWaveform?: boolean; bvrtcConfig?: { enableWebcodes?: boolean; realTimeLevel?: number; }; localRecordCfg?: { minuteOneFile?: number; }; } export interface IPuPlayerInstance extends IComponentInstance { open(muted?: boolean, protocol?: "auto" | "webrtc" | "ws-bvrtc"): Promise; play(muted?: boolean): Promise; hidden(muted?: boolean): Promise; display(muted?: boolean): void; mute(muted?: boolean): void; moveTo(container: N): void; getCurrentContainer(): Container | undefined; close(): Promise; destroy(): void; setPuOption(puOption: IPuOption): void; setVideoFit(fit: keyof IVideoFits): void; setProtocol(protocol: "auto" | "webrtc" | "ws-bvrtc"): void; setToken(newToken: string): void; setApiPrefix(prefix?: string): void; getPlayerElement(): HTMLDivElement; getVideoElement(): HTMLVideoElement; protocol: "webrtc" | "ws-bvrtc" | "auto"; videoFit: keyof IVideoFits; mike?: MikeButton; playerStatus: IPuPlayerStatus; } export type IPuPlayerStatus = ReturnType; declare const PuPlayer: SFC & helperFunc; export default PuPlayer;