import React from 'react' type RealQuality = 'ld' | 'sd' | 'hd' interface PlaySource { bitrate: number duration: number format: string height: number play_url: string size: number width: number } interface PlayerContainerProps { id: string standalone?: boolean title?: string cover: string duration: number sources: {[key in RealQuality]: PlaySource} error: { message: string } onBeforePlay?: (src: string) => Promise shouldObserveResize?: boolean initialObjectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' useMSE?: boolean locale?: 'en' | 'ja' | 'zh-Hans' | 'zh-Hant' } interface Subscription { unsubscribe: () => void } interface MessageContextValue { subscribeEvent: ( eventName: string, eventHandler: (data: any) => void ) => Subscription dispatchAction: (actionName: string, data: any) => void } type Quality = 'auto' | RealQuality interface Source { bitrate: number duration: number format: number height: number quality: Quality source: string size: string width: number } interface VideoSourceContextValue { dataKey: string qualities: Quality[] format: string sources: Source[] currentQuality: Quality currentSrc: string setCurrentQuality: (q: Quality) => void } declare const PlayerContainer: React.ComponentType declare const MessageContext: React.Context declare const VideoSourceContext: React.Context declare const Layer: React.ComponentType export default PlayerContainer export {VideoSourceContext, MessageContext, Layer}