import { recodemux } from 'wrapbox';
/**
 * Resolve the WebGL/WebGL2 context already held by an OffscreenCanvas.
 * Returns null if no WebGL context is attached (e.g. canvas not yet used).
 */
export declare function getCanvasGl(canvas: OffscreenCanvas): WebGLRenderingContext | WebGL2RenderingContext | null;
/**
 * Creates an AV encoder function that queues and encodes both mixed AudioData and VideoFrames.
 */
export declare function createAVEncoder(opts: {
    muxer: ReturnType<typeof recodemux>;
    canvas: OffscreenCanvas;
    outputAudio?: boolean;
    hasVideoTrack: boolean;
    timeSlice: number;
    fps: number;
}): (timestamp: number, audios: Float32Array[][], hasVideo: boolean) => Promise<void>;
