/// <reference types="node" />
/**
 * WebTransport stream events
 * @typedef {import('./types').WebTransportStreamEventHandler} WebTransportStreamEventHandler
 * @typedef {import('./types').StreamRecvSignalEvent} StreamRecvSignalEvent
 * @typedef {import('./types').StreamReadEvent} StreamReadEvent
 * @typedef {import('./types').StreamWriteEvent} StreamWriteEvent
 * @typedef {import('./types').StreamNetworkFinishEvent} StreamNetworkFinishEvent
 *
 * @typedef {import('./types').NativeHttpWTStream} NativeHttpWTStream
 * @typedef {import('./types').ReadBuffer} ReadBuffer
 *
 * @typedef {import('./dom').WebTransportReceiveStream} WebTransportReceiveStream
 * @typedef {import('./dom').WebTransportSendStream} WebTransportSendStream
 *
 * @typedef {import('./dom').WebTransportSendGroup} WebTransportSendGroup
 *
 * @typedef {import('./session').HttpWTSession} HttpWTSession
 *
 * @typedef {import('stream/web').WritableStreamDefaultController} WritableStreamDefaultController
 */
export class HttpWTStream {
    /**
     * @param {object} args
     * @param {NativeHttpWTStream} args.object
     * @param {HttpWTSession} args.parentobj
     * @param {object} args.transport
     * @param {boolean} args.bidirectional
     * @param {boolean} args.incoming
     * @param {WebTransportSendGroup|undefined} args.sendGroup
     * @param {bigint} args.sendOrder
     */
    constructor(args: {
        object: NativeHttpWTStream;
        parentobj: HttpWTSession;
        transport: object;
        bidirectional: boolean;
        incoming: boolean;
        sendGroup: WebTransportSendGroup | undefined;
        sendOrder: bigint;
    });
    objint: import("./types").NativeHttpWTStream;
    parentobj: import("./session").HttpWTSession;
    transport: object;
    bidirectional: boolean;
    incoming: boolean;
    closed: boolean;
    _sendGroup: import("./dom").WebTransportSendGroup | undefined;
    _sendOrder: bigint;
    /** @type {Promise<void> | null} */
    pendingoperation: Promise<void> | null;
    pendingres: (() => void) | null;
    /** @type {WebTransportReceiveStream} */
    readable: WebTransportReceiveStream;
    /** @type {WebTransportSendStream} */
    writable: WebTransportSendStream;
    /** @type {Promise<void> | null} */
    pendingoperationRead: Promise<void> | null;
    pendingresRead: ((value: void | PromiseLike<void>) => void) | null;
    readableController: import("stream/web").ReadableByteStreamController;
    cancelres: (() => void) | null;
    readableclosed: boolean;
    writableController: import("stream/web").WritableStreamDefaultController;
    abortres: (() => void) | null;
    finaldrain_: boolean;
    /**
     * @param {{byteSize: number}} args
     * @returns {ReadBuffer}
     */
    getReadBuffer({ byteSize }: {
        byteSize: number;
    }): ReadBuffer;
    /**
     * @param {ReadBuffer} args
     */
    commitReadBuffer({ buffer, byob, drained, readBytes, fin }: ReadBuffer): {
        stopReading: boolean;
    };
    updateSendOrderAndGroup(): void;
    /**
     * @param {import('./types').StreamRecvSignalEvent} args
     * @returns {void}
     */
    onStreamRecvSignal(args: import('./types').StreamRecvSignalEvent): void;
    writableclosed: boolean | undefined;
    finalDrain(): void;
    /**
     * @param {StreamWriteEvent} args
     */
    onStreamWrite(args: StreamWriteEvent): void;
    /**
     * @param {StreamNetworkFinishEvent} args
     */
    onStreamNetworkFinish(args: StreamNetworkFinishEvent): void;
    stopSendingRecv: boolean | undefined;
}
/**
 * WebTransport stream events
 */
export type WebTransportStreamEventHandler = import('./types').WebTransportStreamEventHandler;
/**
 * WebTransport stream events
 */
export type StreamRecvSignalEvent = import('./types').StreamRecvSignalEvent;
/**
 * WebTransport stream events
 */
export type StreamReadEvent = import('./types').StreamReadEvent;
/**
 * WebTransport stream events
 */
export type StreamWriteEvent = import('./types').StreamWriteEvent;
/**
 * WebTransport stream events
 */
export type StreamNetworkFinishEvent = import('./types').StreamNetworkFinishEvent;
/**
 * WebTransport stream events
 */
export type NativeHttpWTStream = import('./types').NativeHttpWTStream;
/**
 * WebTransport stream events
 */
export type ReadBuffer = import('./types').ReadBuffer;
/**
 * WebTransport stream events
 */
export type WebTransportReceiveStream = import('./dom').WebTransportReceiveStream;
/**
 * WebTransport stream events
 */
export type WebTransportSendStream = import('./dom').WebTransportSendStream;
/**
 * WebTransport stream events
 */
export type WebTransportSendGroup = import('./dom').WebTransportSendGroup;
/**
 * WebTransport stream events
 */
export type HttpWTSession = import('./session').HttpWTSession;
/**
 * WebTransport stream events
 */
export type WritableStreamDefaultController = import('stream/web').WritableStreamDefaultController;
//# sourceMappingURL=stream.d.ts.map