import { type DataPacket, Encryption_Type } from '@livekit/protocol';
import { type ByteStreamHandler, type TextStreamHandler } from './StreamReader';
export default class IncomingDataStreamManager {
    private log;
    /** Max number of decompressed bytes an incoming compressed stream may produce before it is
     * errored (decompression-bomb guard). */
    private maxPayloadByteLength;
    constructor(maxPayloadByteLength?: number);
    private byteStreamControllers;
    private textStreamControllers;
    private byteStreamHandlers;
    private textStreamHandlers;
    private isConnected;
    private bufferedPackets;
    setConnected(connected: boolean): void;
    private flushBufferedPackets;
    registerTextStreamHandler(topic: string, callback: TextStreamHandler): void;
    unregisterTextStreamHandler(topic: string): void;
    registerByteStreamHandler(topic: string, callback: ByteStreamHandler): void;
    unregisterByteStreamHandler(topic: string): void;
    clearControllers(): void;
    validateParticipantHasNoActiveDataStreams(participantIdentity: string): void;
    handleDataStreamPacket(packet: DataPacket, encryptionType: Encryption_Type): void;
    private handleStreamHeader;
    private handleStreamChunk;
    private handleStreamTrailer;
}
//# sourceMappingURL=IncomingDataStreamManager.d.ts.map