import { type PackagerFormat } from '../../packager/media_packager.js';
export interface TrackData {
    namespace: string[];
    name: string;
    timebase: number;
    authInfo?: string;
    maxInFlightRequests?: number;
    isHipri?: boolean;
    moqMapping?: string;
}
export interface ReceiverConfig {
    urlHostPort: string;
    backupUrlHostPort: string;
    isSendingStats: boolean;
    moqTracks: Record<string, TrackData>;
    certificateHash: any;
    packagerFormat: PackagerFormat;
    verbose: boolean;
}
/**
 * MoQ subscriber Web Worker. Opens one subscribing session per relay (main and,
 * optionally, backup; see ReceiverConnection), each parsing its objects with
 * the configured depackager (LOC or CMSF, see src/packager/media_packager.ts)
 * into EncodedAudioChunk / EncodedVideoChunk for the player pipeline. All MoQ
 * protocol work (session, control loop, subscriptions, object reception) lives
 * in the `Moq`/`Subscription` classes.
 */
export declare class MoqReceiver {
    private connections;
    /** Entry point for the worker shell: routes one message to one handler. */
    onMessage(e: MessageEvent): Promise<void>;
    private parseReceiverConfig;
    private checkTrackData;
    /**
     * Open one session per relay (main and optional backup) and subscribe to the
     * configured tracks on each. The connections start concurrently and
     * independently: one that hangs or fails never holds back the other.
     */
    handleInit(data: any): Promise<void>;
    /** Stop subscribing and close every relay session. */
    handleStop(): void;
}
//# sourceMappingURL=moq_receiver_internals.d.ts.map