import { WasmBindings } from "../wasm/bindings"; import { VideoTrack } from "../types"; export declare class SoftwareVideoDecoder { private bindings; private onFrame; private onError; private isConfigured; private trackIndex; private targetFps; private lastProcessedTimestamp; constructor(bindings: WasmBindings); setOnFrame(callback: (frame: VideoFrame) => void): void; setOnError(callback: (error: Error) => void): void; configure(track: VideoTrack, targetFps?: number): Promise; /** * Toggle non-reference (B-frame) skipping at runtime. Enabled adaptively when * the renderer finds the device can't decode the source rate in realtime: * B-frames are never referenced, so dropping them roughly halves decode CPU * on typical GOP structures without corrupting the stream. Safe to call * mid-playback; takes effect on the next decoded packet. */ setNonRefSkip(enabled: boolean): void; flush(): Promise; reset(): void; close(): void; private packetQueue; private isProcessingQueue; decode(data: Uint8Array, pts: number, dts: number, keyframe: boolean): void; private processQueue; private decodeInternal; private processDecodedFrame; get configured(): boolean; get queueSize(): number; } //# sourceMappingURL=SoftwareVideoDecoder.d.ts.map