/// /// /// import handler = require('../handler/queue'); export declare var PC_QUEUE_LIMIT: number; export interface DataChannel { getLabel: () => string; onceOpened: Promise; onceClosed: Promise; dataFromPeerQueue: handler.QueueHandler; send(data: Data): Promise; getBrowserBufferedAmount(): Promise; getJavascriptBufferedAmount(): number; isInOverflow(): boolean; setOverflowListener(listener: (overflow: boolean) => void): void; close(): Promise; toString(): string; } export interface Data { str?: string; buffer?: ArrayBuffer; } export declare class DataChannelClass implements DataChannel { private rtcDataChannel_; private label_; dataFromPeerQueue: handler.Queue; private toPeerDataQueue_; private toPeerDataBytes_; private lastBrowserBufferedAmount_; onceOpened: Promise; onceClosed: Promise; private draining_; private fulfillDrained_; private onceDrained_; private isOpen_; private rejectOpened_; private overflow_; private overflowListener_; getLabel: () => string; constructor(rtcDataChannel_: freedom_RTCDataChannel.RTCDataChannel, label_?: string); private onDataFromPeer_; send: (data: Data) => Promise; private chunkStringOntoQueue_; private chunkBufferOntoQueue_; private handleSendDataToPeer_; private setOverflow_; private conjestionControlSendHandler; close: () => Promise; private waitForBrowserToDrain_; getBrowserBufferedAmount: () => Promise; getJavascriptBufferedAmount: () => number; isInOverflow: () => boolean; setOverflowListener: (listener: (overflow: boolean) => void) => void; toString: () => string; setLabel: (label: string) => void; } export declare function createFromFreedomId(id: string): Promise; export declare function createFromRtcDataChannel(rtcDataChannel: freedom_RTCDataChannel.RTCDataChannel): Promise;