import { Instance } from "../../instance/UserInstance";
import { CallReportInstance, CallResult, ClientError, ConnectionInfo, Destination, Domain, IceCandidate, Origin } from "../../ocra/api";
import { Direction as CallReportDirection } from "../../ocra/api";
import { SinchError } from "../../SinchError";
import { Call } from "../Call";
import { InboundCall } from "../InboundCall";
import { OutboundCall } from "../OutboundCall";
import { Candidate } from "./WebRTCStats.types";
/**
 * Class acting as a helper for converting properties of different components into format used in
 * call reporting functionality.
 */
export declare class CallReportUtils {
    static getCallResult(call: Call): CallResult;
    static getCallReportDirection(call: Call): CallReportDirection;
    static getDurationInSeconds(durationMs: number): number;
    static getClientErrors(error: SinchError | undefined): [ClientError] | undefined;
    private static getClientErrorDomain;
    static getRemoteDomain(call: InboundCall | OutboundCall): Domain | undefined;
    static getCallDestination(call: InboundCall | OutboundCall, userId: string): Destination | undefined;
    static getCallOrigin(call: InboundCall | OutboundCall, userId: string): Origin | undefined;
    static getCallReportInstance(instance: Instance): CallReportInstance;
    static getIceCandidate(candidate: Candidate): IceCandidate;
    static getPrimaryIceCandidate({ connectionInfos, isLocal, }: {
        connectionInfos: ConnectionInfo[];
        isLocal: boolean;
    }): IceCandidate | undefined;
    static filterSubsequentSameConnectionInfos(connectionInfos: ConnectionInfo[]): ConnectionInfo[];
    private static isConnectionInfoEqual;
    private static getIceCandidateHash;
    private static getIceCandidateType;
    private static getIceTransportProtocol;
    private static getRelayProtocol;
    private static getIpVersion;
    private static inferHungUpResult;
}
