///
import { Candidate } from "../candidate";
import { Message } from "../stun/message";
export type Address = Readonly<[string, number]>;
export interface Protocol {
type: string;
localCandidate?: Candidate;
sentMessage?: Message;
request: (message: Message, addr: Address, integrityKey?: Buffer, retransmissions?: any) => Promise<[Message, Address]>;
responseAddr?: Address;
responseMessage?: string;
close?: () => Promise;
connectionMade: (...args: any) => Promise;
sendStun: (message: Message, addr: Address) => void;
sendData: (data: Buffer, addr: Address) => Promise;
}