import { EventEmitter } from "../shared/observable";
import { MessageType } from "../shared/types";
export declare abstract class PeerDataChannel extends EventEmitter<{
    [key in MessageType]: Uint8Array;
} & {
    close: void;
}> {
    accessMode: "read" | "write";
    private decoder;
    private encoder;
    protected constructor(accessMode: "read" | "write");
    abstract send(type: MessageType, data: Uint8Array): any;
    emit(type: MessageType | "close", data: Uint8Array | void): void;
    disconnect(): void;
}
export declare type PeerDataChannelMessage = {};
