type CanvasDrawable = HTMLCanvasElement | OffscreenCanvas; type SABREOptions = { fonts?: Array, subtitles?: ArrayBuffer, colorSpace?:number, resolution?:number[], nativeResolution?:number[] } type ContextType = "2d" | "bitmap"; declare namespace sabre { namespace VideoColorSpace { const AUTOMATIC: number; const AUTOMATIC_PC: number; const RGB: number; const BT601_TV: number; const BT601_PC: number; const BT709_TV: number; const BT709_PC: number; const BT2020_TV: number; const BT2020_PC: number; const BT2020_CL_TV: number; const BT2020_CL_PC: number; const BT2100_PQ: number; const BT2100_HLG: number; const SMPTE240M_TV: number; const SMPTE240M_PC: number; const FCC_TV: number; const FCC_PC: number; } class SABRERenderer { constructor(options?: SABREOptions); loadSubtitles(subs: ArrayBuffer, fonts: Array): void; setColorSpace(colorSpace: number, width?: number, height?: number): void; setViewport(width: number, height: number): void; checkReadyToRender(): boolean; getFrame(time: number): ImageBitmap; getFrameAsUri(time: number, callback: (objUri: string) => void): void; drawFrame(time: number, canvas: CanvasDrawable, contextType?: ContextType): void; } }