///
import { RTCIceTransport } from "./ice";
import { DtlsSocket } from "../../vendor/dtls";
import Event from "rx.mini";
export declare enum DtlsState {
NEW = 0,
CONNECTING = 1,
CONNECTED = 2,
CLOSED = 3,
FAILED = 4
}
declare type DtlsRole = "auto" | "server" | "client";
export declare class RTCDtlsTransport {
iceTransport: RTCIceTransport;
dtls?: DtlsSocket;
stateChanged: Event;
state: DtlsState;
private localCertificate;
role: DtlsRole;
dataReceiver?: (buf: Buffer) => void;
constructor(iceTransport: RTCIceTransport, certificates: RTCCertificate[]);
getLocalParameters(): RTCDtlsParameters;
start(remoteParameters: RTCDtlsParameters): Promise;
sendData(data: Buffer): void;
private setState;
stop(): void;
}
export declare class RTCCertificate {
publicKey: string;
privateKey: string;
cert: string;
constructor(privateKeyPem: string, certPem: string);
getFingerprints(): RTCDtlsFingerprint[];
static unsafe_useDefaultCertificate(): RTCCertificate;
}
export declare class RTCDtlsFingerprint {
algorithm: string;
value: string;
constructor(algorithm: string, value: string);
}
export declare class RTCDtlsParameters {
fingerprints: RTCDtlsFingerprint[];
role: "auto" | "client" | "server" | undefined;
constructor(fingerprints?: RTCDtlsFingerprint[], role?: "auto" | "client" | "server" | undefined);
}
export {};