import { IceCandidateStats } from "../schema/ClientSample";
import { PeerConnectionMonitor } from "./PeerConnectionMonitor";
export type IceRelayProtocol = 'udp' | 'tcp' | 'tls';
export type IceAddressFamily = 'ipv4' | 'ipv6';
export declare class IceCandidateMonitor implements IceCandidateStats {
    private readonly _peerConnection;
    private _visited;
    timestamp: number;
    id: string;
    transportId?: string | undefined;
    address?: string | undefined;
    port?: number | undefined;
    protocol?: string | undefined;
    candidateType?: string | undefined;
    priority?: number | undefined;
    url?: string | undefined;
    relayProtocol?: string | undefined;
    foundation?: string | undefined;
    relatedAddress?: string | undefined;
    relatedPort?: number | undefined;
    usernameFragment?: string | undefined;
    tcpType?: string | undefined;
    attachments?: Record<string, unknown> | undefined;
    appData?: Record<string, unknown> | undefined;
    constructor(_peerConnection: PeerConnectionMonitor, options: IceCandidateStats);
    get visited(): boolean;
    accept(stats: Omit<IceCandidateStats, 'appData'>): void;
    getPeerConnection(): PeerConnectionMonitor;
    getIceTransport(): import("./IceTransportMonitor").IceTransportMonitor | undefined;
    get isRelay(): boolean;
    get turnTransport(): IceRelayProtocol | undefined;
    get turnServer(): string | undefined;
    get addressFamily(): IceAddressFamily | undefined;
    createSample(): IceCandidateStats;
}
