import type { ITransport, ITransportEventMap } from "./ITransport.ts";
/**
 * Reassembles length-prefixed frames from arbitrary byte chunks.
 *
 * A single WebTransport `reader.read()` may:
 *   - deliver multiple whole frames in one chunk
 *   - split a frame (or its length prefix) across multiple chunks
 *
 * This reassembler buffers partial data across reads so each dispatched
 * frame is exactly one complete message.
 */
export declare class FrameReassembler {
    private pending;
    push(chunk: Uint8Array | undefined): Uint8Array[];
}
export declare class H3TransportTransport implements ITransport {
    wt: WebTransport;
    isOpen: boolean;
    events: ITransportEventMap;
    reader: ReadableStreamDefaultReader;
    writer: WritableStreamDefaultWriter;
    unreliableReader: ReadableStreamDefaultReader<Uint8Array>;
    unreliableWriter: WritableStreamDefaultWriter<Uint8Array>;
    private lengthPrefixBuffer;
    private reliableReassembler;
    private unreliableReassembler;
    constructor(events: ITransportEventMap);
    connect(url: string, options?: any): void;
    send(data: Buffer | Uint8Array): void;
    sendUnreliable(data: Buffer | Uint8Array): void;
    close(code?: number, reason?: string): void;
    protected readIncomingData(): Promise<void>;
    protected readIncomingUnreliableData(): Promise<void>;
    protected sendSeatReservation(roomId: string, sessionId: string, reconnectionToken?: string, skipHandshake?: boolean): void;
    protected _close(): void;
}
