import { Logger } from '@libp2p/logger';
import { EventEmitter } from '@libp2p/interfaces/events';
import { Pushable } from 'it-pushable';
import { WebRTCDataChannel } from './channel.js';
import type { WebRTCPeerInit, WebRTCPeerEvents, WRTC } from './index.js';
import type { Duplex, Sink } from 'it-stream-types';
export declare class WebRTCPeer extends EventEmitter<WebRTCPeerEvents> implements Duplex<Uint8Array> {
    id: string;
    source: Pushable<Uint8Array>;
    sink: Sink<Uint8Array>;
    closed: boolean;
    protected wrtc: WRTC;
    protected peerConnection: RTCPeerConnection;
    protected channel?: WebRTCDataChannel;
    protected log: Logger;
    private readonly connected;
    constructor(opts: WebRTCPeerInit & {
        logPrefix: string;
    });
    protected handleDataChannelEvent(event: {
        channel?: RTCDataChannel;
    }): void;
    close(err?: Error): Promise<void>;
}
//# sourceMappingURL=peer.d.ts.map