import { Session } from "../session/Session";
import { SinchError } from "../SinchError";
import { Call } from "./Call";
import { CallDetails } from "./CallDetails";
import { CallEndCause } from "./CallEndCause";
import { DefaultCall } from "./DefaultCall";
import { CallListener } from "./listeners/CallListener";
export declare class DefaultCallDetails implements CallDetails, CallListener {
    private call;
    private session;
    hadVideoStream: boolean;
    hadAudioStream: boolean;
    requestedVideo: boolean;
    requestedAudio: boolean;
    acceptedTime?: Date;
    answeredTime?: Date;
    establishedTime?: Date;
    endedTime?: Date;
    progressTime?: Date;
    rungTime?: Date;
    startedTime: Date;
    private direction;
    constructor(call: DefaultCall, session: Session);
    get duration(): number;
    get setupDuration(): number;
    get notifyingDuration(): number;
    get ringingDuration(): number;
    get acceptingDuration(): number;
    get connectingDuration(): number;
    get error(): SinchError | undefined;
    get endCause(): CallEndCause;
    onCallEnded(_: Call): void;
    onCallProgressing(_: Call): void;
    onCallRinging(_: Call): void;
    onCallAccepted(_: Call): void;
    onCallAnswered(_: Call): void;
    onCallEstablished(_: Call): void;
    onRemoteTrack(_: Call, track: MediaStreamTrack): void;
    private mapCallEndCause;
    private inferCallError;
    private calculateDurationMs;
}
