import Call from './Call';
import { WazoSession } from './types';
type CallSessionArguments = {
    answered: boolean;
    answerTime?: Date | null | undefined;
    answeredBySystem: boolean;
    call: Call | null | undefined;
    callId: string;
    callerNumber: string;
    cameraEnabled: boolean;
    creationTime?: Date | null | undefined;
    dialedExtension?: string | null;
    displayName: string;
    endTime?: Date | null | undefined;
    isCaller: boolean;
    muted: boolean;
    videoMuted: boolean;
    videoRemotelyDowngraded?: boolean;
    number: string;
    paused: boolean;
    ringing: boolean;
    sipCallId: string;
    sipId?: string;
    sipStatus?: string;
    startTime: number;
    autoAnswer?: boolean;
    ignored?: boolean;
    screensharing: boolean;
    recording: boolean;
    recordingPaused: boolean;
    sipSession?: WazoSession;
    conference: boolean;
};
export default class CallSession {
    call: Call | null | undefined;
    callId: string;
    displayName: string;
    realDisplayName: string;
    updatedNumber: string;
    number: string;
    callerNumber: string;
    creationTime: Date | null | undefined;
    startTime: number;
    answerTime: Date | null | undefined;
    endTime: Date | null | undefined;
    isCaller: boolean;
    answeredBySystem: boolean;
    dialedExtension: string;
    ringing: boolean;
    paused: boolean;
    sipCallId: string;
    sipStatus: string | number | null | undefined;
    muted: boolean;
    videoMuted: boolean;
    videoRemotelyDowngraded: boolean | null | undefined;
    cameraEnabled: boolean;
    autoAnswer: boolean;
    ignored: boolean;
    screensharing: boolean;
    type: string;
    recording: boolean;
    recordingPaused: boolean;
    sipSession: WazoSession | undefined;
    conference: boolean;
    constructor({ answered, answeredBySystem, isCaller, displayName, callId, muted, videoMuted, number, paused, ringing, startTime, creationTime, endTime, cameraEnabled, dialedExtension, sipCallId, sipStatus, callerNumber, call, autoAnswer, ignored, screensharing, recording, recordingPaused, videoRemotelyDowngraded, sipSession, answerTime, conference, }: CallSessionArguments);
    resume(): void;
    hold(): void;
    mute(): void;
    unmute(): void;
    muteVideo(): void;
    unmuteVideo(): void;
    answer(): void;
    systemAnswer(): void;
    enableCamera(): void;
    disableCamera(): void;
    ignore(): void;
    startScreenSharing(): void;
    stopScreenSharing(): void;
    setIsConference(conference: boolean): void;
    isIncoming(): boolean;
    isOutgoing(): boolean;
    isActive(): boolean;
    isAnswered(): boolean;
    isAnsweredBySystem(): boolean;
    isRinging(): boolean;
    isOnHold(): boolean;
    isMuted(): boolean;
    isVideoMuted(): boolean;
    isCameraEnabled(): boolean;
    isIgnored(): boolean;
    isScreenSharing(): boolean;
    isRecording(): boolean;
    recordingIsPaused(): boolean;
    hasAnInitialInterceptionNumber(): boolean;
    isAnInterception(): boolean;
    isEstablished(): boolean;
    isTerminating(): boolean;
    isTerminated(): boolean;
    isConference(): boolean;
    getElapsedTimeInSeconds(): number;
    getId(): string;
    is(callSession: CallSession | null | undefined): boolean;
    isId(id: string): boolean;
    updateFrom(session: CallSession): void;
    separateDisplayName(): {
        firstName: string;
        lastName: string;
    };
    getTalkingToIds(): string[];
    setVideoRemotelyDowngraded(value: boolean): void;
    isVideoRemotelyDowngraded(): boolean | null | undefined;
    static newFrom(callSession: CallSession): any;
    set answered(value: boolean);
    get answered(): boolean;
    toJSON(): this;
    static parseCall(call: Call): CallSession;
}
export {};
//# sourceMappingURL=CallSession.d.ts.map