import ApiRequester from '../utils/api-requester';
import type { UUID } from '../domain/types';
import Relocation from '../domain/Relocation';
import ChatMessage from '../domain/ChatMessage';
import Voicemail, { type VoicemailFolderType } from '../domain/Voicemail';
import Call, { CallResponse } from '../domain/Call';
import IndirectTransfer from '../domain/IndirectTransfer';
import MeetingStatus from '../domain/MeetingStatus';
export interface CallD {
    updatePresence: (presence: string) => Promise<boolean>;
    listMessages: (participantUuid: UUID | null | undefined, limit?: number) => Promise<Array<ChatMessage>>;
    sendMessage: (alias: string, msg: string, toUserId: string) => Promise<boolean>;
    makeCall: (extension: string, fromMobile: boolean, lineId: number | null | undefined, allLines: boolean | null | undefined) => Promise<CallResponse>;
    cancelCall: (callId: string) => Promise<boolean>;
    listCalls: () => Promise<Array<Call>>;
    relocateCall: (callId: string, destination: string, lineId: number | null | undefined, contact?: string | null | undefined) => Promise<Relocation>;
    listVoicemails: () => Promise<Array<Voicemail>>;
    deleteVoicemail: (voicemailId: string) => Promise<boolean>;
    getVoicemailUrl: (voicemail: Voicemail) => string;
    updateVoicemailFolder: (voicemail: Voicemail, folder: VoicemailFolderType) => Promise<void>;
    fetchSwitchboardHeldCalls: (switchboardUuid: UUID) => Promise<any>;
    holdSwitchboardCall: (switchboardUuid: UUID, callId: string) => Promise<boolean>;
    answerSwitchboardHeldCall: (switchboardUuid: UUID, callId: string, lineId: string | null | undefined) => Promise<void>;
    fetchSwitchboardQueuedCalls: (switchboardUuid: UUID) => Promise<any>;
    answerSwitchboardQueuedCall: (switchboardUuid: UUID, callId: string, lineId: string | null | undefined) => Promise<any>;
    sendFax: (extension: string, fax: string, callerId?: string) => Promise<void>;
    getConferenceParticipantsAsUser: (conferenceId: string) => Promise<Record<string, any>>;
    getMeetingParticipantsAsUser: (meetingUuid: string) => Promise<Record<string, any>>;
    banMeetingParticipant: (meetingUuid: string, participantUuid: string) => Promise<boolean>;
    listTrunks: () => Promise<any>;
    mute: (callId: string) => Promise<boolean>;
    unmute: (callId: string) => Promise<boolean>;
    hold: (callId: string) => Promise<boolean>;
    resume: (callId: string) => Promise<boolean>;
    transferCall: (initiator_call: string, exten: string, flow: string) => Promise<IndirectTransfer>;
    confirmCallTransfer: (transferId: string) => Promise<boolean>;
    cancelCallTransfer: (transferId: string) => Promise<boolean>;
    sendDTMF: (callId: string, digits: string) => Promise<boolean>;
    isAhHocConferenceAPIEnabled: () => Promise<boolean>;
    createAdHocConference: (hostCallId: string, participantCallIds: string[]) => Promise<any>;
    addAdHocConferenceParticipant: (conferenceId: string, callId: string) => Promise<boolean>;
    removeAdHocConferenceParticipant: (conferenceId: string, participantCallId: string) => Promise<boolean>;
    deleteAdHocConference: (conferenceId: string) => Promise<boolean>;
    startRecording: (callId: string) => Promise<boolean>;
    stopRecording: (callId: string) => Promise<boolean>;
    pauseRecording: (callId: string) => Promise<boolean>;
    resumeRecording: (callId: string) => Promise<boolean>;
    guestGetMeetingStatus: (meetingUuid: string) => Promise<MeetingStatus>;
}
declare const _default: (client: ApiRequester, baseUrl: string) => CallD;
export default _default;
//# sourceMappingURL=calld.d.ts.map