export interface TrackData {
    namespace: string[];
    name: string;
    authInfo?: string;
    maxInFlightRequests?: number;
    isHipri?: boolean;
    moqMapping?: string;
    newSubgroupEvery?: number;
}
export interface MuxerSenderConfig {
    urlHostPort: string;
    isSendingStats: boolean;
    moqTracks: Record<string, TrackData>;
    keepAlivesEveryMs: number;
    certificateHash: any;
    usePublishNamespace: boolean;
    verbose: boolean;
}
interface ChunkMessage {
    mediaType: string;
    chunk: any;
    seqId?: number;
    firstFrameClkms?: number;
    compensatedTs?: number;
    estimatedDuration?: number;
    metadata?: any;
    timebase?: number;
    sampleFreq?: number;
    numChannels?: number;
    codec?: string;
    moqMapping?: string;
}
/**
 * MoQ publisher Web Worker.
 * MoQ publisher Web Worker. Translates main-thread messages into calls on the
 * high-level MoQ API (src/moq/moq.ts) and packages encoded media with
 * MIPackager. All MoQ protocol work (session, control loop, subscriptions,
 * object scheduling) lives in the `Moq`/`Track` classes.
 */
export declare class MoqSender {
    private config;
    private verbose;
    private moq;
    private tracks;
    /** Entry point for the worker shell: routes one message to one handler. */
    onMessage(e: MessageEvent): Promise<void>;
    private parseSenderConfig;
    private checkTrackData;
    /** Open the session, publish the tracks and start keep-alive. */
    handleInit(data: any): Promise<void>;
    private publishTrack;
    private priorityForMediaType;
    /** Package one encoded media chunk and hand it to its track. */
    handleChunk(data: ChunkMessage): void;
    private normalizeChunk;
    private packetizeChunk;
    /** Stop publishing and close the session. */
    handleStop(): void;
    private emitDropped;
    private emitStats;
}
export {};
//# sourceMappingURL=moq_sender_internals.d.ts.map