import { CallSession } from '../sip';
import { Client, UserCallRequest } from './client';
import { QueueParameters } from './queue';
import { MemberCommunication, Reporting, Task, TaskData } from './task';
import { StorageMediaCapture } from '../screen/storage';
import { Conversation } from './conversation';
/**
 * Параметри виклику
 * @typedef {Object} CallParameters
 * @property {number} [timeout] - Тайм-аут у секундах.
 * @property {boolean} [video] - Вказує на наявність відео.
 * @property {boolean} [audio] - Вказує на наявність аудіо.
 * @property {boolean} [screen] - Вказує на наявність екрану.
 * @property {boolean} [disableStun] - Вимкнення STUN.
 * @property {boolean} [autoAnswer] - Автоматична відповідь.
 * @property {string} [display] - Відображуване ім'я.
 * @property {Map<string, string>} [variables] - Змінні виклику.
 */
export interface CallParameters {
    timeout?: number;
    video?: boolean;
    audio?: boolean;
    screen?: boolean;
    disableStun?: boolean;
    autoAnswer?: boolean;
    display?: string;
    variables?: Map<string, string>;
    contactId?: number;
}
/**
 * Статуси звітності виклику
 * @enum {string}
 */
export declare enum CallReportingStatus {
    Abandoned = "abandoned",
    Cancel = "cancel",
    Success = "success",
    Failed = "failed",
    Missed = "missed",
    Timeout = "timeout",
    Endless = "endless",
    Transferred = "transferred"
}
/**
 * Стани прослуховування
 * @enum {string}
 */
export declare enum EavesdropState {
    Muted = "muted",
    Conference = "conference",
    Prompt = "prompt"
}
/**
 * Типи прослуховування
 * @enum {string}
 */
export declare enum EavesdropType {
    Joined = "joined",
    Leave = "leave",
    Hide = "hide"
}
/**
 * Інтерфейс для змінних дзвінка.
 * Ключі є ідентифікаторами змінних, а значення - рядками.
 * @interface
 */
export interface CallVariables {
    [key: string]: string;
}
/**
 * Інтерфейс для представлення інформації про дзвінок.
 * @interface
 */
export interface CallItem {
    /** Унікальний ідентифікатор дзвінка. */
    id: string;
    /** Ідентифікатор програми. */
    app_id: string;
    /** Стан дзвінка. */
    state: string;
    /** Час, коли дзвінок був створений. */
    timestamp: number;
    /** Тип дзвінка. */
    type: string;
    /** Ідентифікатор батьківського дзвінка. */
    parent_id?: string;
    /** Розширення для дзвінка. */
    extension?: string;
    /** Напрямок дзвінка. */
    direction: string;
    /** Місце призначення дзвінка. */
    destination: string;
    /** Вхідний параметр дзвінка. */
    from: CallEndpoint;
    /** Вихідний параметр дзвінка. */
    to?: CallEndpoint;
    /** Додаткові змінні дзвінка. */
    variables: CallVariables;
    /** Час створення дзвінка. */
    created_at: number;
    /** Час, коли дзвінок був відповіданий. */
    answered_at?: number;
    /** Час, коли дзвінок був з'єднаний. */
    bridged_at?: number;
    /** Час, коли дзвінок був завершений. */
    hangup_at?: number;
    /** Тривалість дзвінка. */
    duration: number;
    /** Час, проведений на утриманні. */
    hold_sec: number;
    /** Час очікування дзвінка. */
    wait_sec?: number;
    /** Час, за який був обрахований дзвінок. */
    bill_sec?: number;
    /** Інформація про чергу. */
    queue?: object;
    /** Час приєднання до черги. */
    joined_at?: number;
    /** Час, коли дзвінок залишив чергу. */
    leaving_at?: number;
    /** Час звітності. */
    reporting_at?: number;
    /** Час з'єднання черги. */
    queue_bridged_at?: number;
    /** Час очікування в черзі. */
    queue_wait_sec?: number;
    /** Тривалість перебування в черзі. */
    queue_duration_sec?: number;
    /** Час звітності. */
    reporting_sec?: number;
    /** Час відображення. */
    display?: number;
    /** Дані завдання. */
    task?: TaskData;
    /** Ідентифікатор контакту. */
    contact_id?: number;
    hide_number?: boolean;
}
/**
 * Інтерфейс для запиту виходу дзвінка.
 * @interface
 */
export interface OutboundCallRequest {
    /** SDP для з'єднання. */
    sdp?: string;
    /** Місце призначення дзвінка. */
    destination?: string;
    /** Потік медіа. */
    stream?: MediaStream;
    /** Додаткові параметри дзвінка. */
    params?: CallParameters;
}
/**
 * Інтерфейс для запиту прослуховування дзвінка.
 * @interface
 */
export interface EavesdropRequest {
    /** Ідентифікатор дзвінка. */
    id: string;
    /** Управлінські параметри прослуховування. */
    control?: boolean;
    /** Слухати сторону A. */
    listenA?: boolean;
    /** Слухати сторону B. */
    listenB?: boolean;
    /** Шепотіти стороні A. */
    whisperA?: boolean;
    /** Шепотіти стороні B. */
    whisperB?: boolean;
    /** Група прослуховування. */
    group?: string;
}
/**
 * Інтерфейс для даних прослуховування.
 * @interface
 */
export interface EavesdropData {
    /** Тип прослуховування. */
    type: EavesdropType;
    /** Стан прослуховування. */
    state: EavesdropState;
    /** Ім'я контакту. */
    name?: string;
    /** Номер контакту. */
    number?: string;
    /** Тривалість прослуховування. */
    duration?: number;
}
/**
 * Перерахування для дій дзвінка.
 * @enum {string}
 */
export declare enum CallActions {
    /**
     * Дзвінок у режимі дзвінка (ringing).
     */
    Ringing = "ringing",
    /**
     * Дзвінок у активному стані (active).
     */
    Active = "active",
    /**
     * Дзвінок у режимі мосту (bridge).
     */
    Bridge = "bridge",
    Progress = "progress",
    /**
     * Дзвінок у режимі утримання (hold).
     */
    Hold = "hold",
    /**
     * Дзвінок з DTMF (Dual-tone multi-frequency) сигналами.
     */
    DTMF = "dtmf",
    /**
     * Голосовий дзвінок (voice).
     */
    Voice = "voice",
    /**
     * Дзвінок у режимі тиші (silence).
     */
    Silence = "silence",
    /**
     * Виконання програми або дії (execute).
     */
    Execute = "execute",
    /**
     * Оновлення інформації про дзвінок (update).
     */
    Update = "update",
    /**
     * Завершення дзвінка (hangup).
     */
    Hangup = "hangup",
    /**
     * Перевірка стану дзвінка (heartbeat).
     */
    Heartbeat = "heartbeat",
    /**
     * Надсилання звітності про дзвінок (reporting).
     */
    Reporting = "reporting",
    /**
     * Надсилання потоків для співрозмовників (peerStream).
     */
    PeerStream = "peerStream",
    /**
     * Надсилання локальних потоків (localStream).
     */
    LocalStream = "localStream",
    /**
     * Знищення дзвінка (destroy).
     */
    Destroy = "destroy",
    /**
     * Прослуховування дзвінка (eavesdrop).
     */
    Eavesdrop = "eavesdrop",
    Info = "info",
    Stats = "stats"
}
/**
 * Перерахування для напрямку дзвінка.
 * @enum {string}
 */
export declare enum CallDirection {
    /**
     * Вхідний дзвінок.
     */
    Inbound = "inbound",
    /**
     * Вихідний дзвінок.
     */
    Outbound = "outbound"
}
/**
 * Інтерфейс для подій контактних даних.
 * @interface
 */
interface ContactDataEvent {
    /** Ідентифікатор контакту. */
    contact_id?: number;
    /** Вказує, чи ховати контакт. */
    hide_contact?: boolean;
}
/**
 * Інтерфейс для контактної інформації.
 * @interface
 */
interface Contact {
    /** Ідентифікатор контакту або `null`. */
    id: number | null;
    /** Вказує, чи потрібно ховати контакт. */
    hide: boolean;
}
export interface RTPAggregate {
    average: number;
    min: number;
    min_at: number;
    max: number;
    max_at: number;
}
export interface RtpMetrics {
    mos: RTPAggregate;
    jitter: RTPAggregate;
    roundtrip: RTPAggregate;
    packetloss: RTPAggregate;
}
export interface CallMediaStats {
    rtp: RtpMetrics;
}
/**
 * Інтерфейс для запиту на відповідь дзвінка.
 * @interface
 */
export interface AnswerRequest {
    /** Включити аудіо. */
    audio?: boolean;
    /** Включити відео. */
    video?: boolean;
    /** Включити екран. */
    screen?: boolean;
    /** Вимкнути STUN. */
    disableStun?: boolean;
}
/**
 * Інтерфейс для даних події дзвінка.
 * @interface
 */
export interface CallEventData {
    /** Ідентифікатор події. */
    id: string;
    /** Ідентифікатор програми. */
    app_id: string;
    /** Ідентифікатор CC програми. */
    cc_app_id: string;
    /** Час події. */
    timestamp: number;
    /** Тип події. */
    event: string;
    /** Додаткові дані події. */
    data?: object;
}
/**
 * Інтерфейс для події виконання дзвінка.
 * @interface
 * @extends CallEventData
 */
export interface CallEventExecute extends CallEventData {
    /** Назва програми. */
    application: string;
}
/**
 * Інтерфейс для події DTMF дзвінка.
 * @interface
 * @extends CallEventData
 */
export interface CallEventDTMF extends CallEventData {
    /** DTMF цифра. */
    digit: string;
}
/**
 * Інтерфейс для події прослуховування дзвінка.
 * @interface
 * @extends CallEventData, EavesdropData
 */
export interface CallEventEavesdrop extends CallEventData, EavesdropData {
}
/**
 * Інтерфейс для параметрів кінцевих точок дзвінка.
 * @interface
 */
export interface CallEndpoint {
    /** Тип кінцевої точки. */
    type: string;
    /** Номер кінцевої точки. */
    number?: string;
    /** Ідентифікатор кінцевої точки. */
    id?: string;
    /** Назва кінцевої точки. */
    name?: string;
}
interface VideoData {
    video?: VideoMediaFlow;
    remote_video?: VideoMediaFlow;
}
/**
 * Інтерфейс для події з'єднання дзвінків.
 * @interface
 * @extends CallEventData, ContactDataEvent
 */
export interface CallBridged extends CallEventData, ContactDataEvent, VideoData {
    /** Ідентифікатор з'єднаного дзвінка. */
    bridged_id: string;
    /** Вихідний параметр кінцевої точки. */
    to?: CallEndpoint;
    /** Параметри черги. */
    queue?: QueueParameters;
    /** Додаткові дані. */
    payload?: Map<string, string>;
}
/**
 * Інтерфейс для інформації про дзвінок.
 * @interface
 * @extends CallEventData, ContactDataEvent
 */
export interface CallInfo extends CallEventData, ContactDataEvent, VideoData {
    /** SIP-ідентифікатор. */
    sip_id: string;
    /** Ідентифікатор батьківського дзвінка. */
    parent_id?: string;
    /** Ідентифікатор користувача. */
    user_id?: string;
    /** Напрямок дзвінка. */
    direction: string;
    /** Місце призначення дзвінка. */
    destination: string;
    /** Параметри черги. */
    queue?: QueueParameters;
    /** Вхідний параметр кінцевої точки. */
    from: CallEndpoint;
    /** Вихідний параметр кінцевої точки. */
    to?: CallEndpoint;
    /** Додаткові дані дзвінка. */
    payload: Map<string, string>;
    /** Параметри дзвінка. */
    params?: CallParams;
    /** Дані прослуховування. */
    eavesdrop?: EavesdropData;
    /** Вказує, чи дзвінок був ініційований. */
    originate?: boolean;
    meeting_id?: string;
    hide_number?: boolean;
}
/**
 * Інтерфейс для події завершення дзвінка.
 * @interface
 */
export interface CallHangup extends CallEventData {
    /** Причина завершення дзвінка. */
    cause: string;
    /** SIP-код завершення. */
    sip: number;
    /** Час звітності. */
    reporting_at: number;
    /** Вказує, чи потрібно відправити повідомлення про завершення. */
    notification_hangup?: boolean;
}
/**
 * Інтерфейс для параметрів дзвінка.
 * @interface
 */
export interface CallParams {
    /** Включити аудіо. */
    audio?: boolean;
    /** Включити відео. */
    video?: boolean;
    /** Включити екран. */
    screen?: boolean;
    /** Автоматичний відповідь. */
    autoAnswer?: boolean | string;
    /** Вимкнути STUN. */
    disableStun?: boolean;
}
/**
 * Інтерфейс для запиту інформації про учасників.
 * @interface
 */
export interface MemberInfoRequest {
    /** Поля для отримання інформації. */
    fields?: string[];
}
/**
 * Інтерфейс для подій дзвінків.
 * @interface
 */
export interface CallEvents {
    /** Подія завершення дзвінка. */
    hangup(): void;
}
export declare enum VideoMediaFlow {
    SendRecv = "sendrecv",
    SendOnly = "sendonly",
    RecvOnly = "recvonly",
    Inactive = "inactive",
    Disabled = "disabled"
}
/**
 * Клас Call: Описує властивості і методи для роботи з дзвінком,
 * включаючи інформацію про його стан, учасників, медіа потоки, та інші атрибути.
 *
 * Конструктор Call:
 *  client: Клієнт, що керує дзвінком.
 *  e: Дані події дзвінка, які використовуються для ініціалізації властивостей класу.
 * В конструкторі здійснюється ініціалізація всіх властивостей класу на основі переданих даних
 * події дзвінка (e). Значення за замовчуванням задаються для необов'язкових полів,
 * якщо вони не присутні в об'єкті e.
 */
export declare class Call {
    protected client: Client;
    data: any;
    id: string;
    appId: string;
    sipId: string | null;
    state: string;
    params: CallParams;
    direction: string;
    destination: string;
    from: CallEndpoint;
    to?: CallEndpoint;
    toNumber: string;
    toName: string;
    variables: Map<string, string>;
    postProcessData: object;
    peerStreams: MediaStream[];
    localStreams: MediaStream[];
    sip: CallSession | null;
    screen: string | null;
    createdAt: number;
    answeredAt: number;
    bridgedAt: number;
    hangupAt: number;
    reportingAt: number;
    hangupCause: string;
    hangupSipCode: number;
    notificationHangup: boolean;
    parentId?: string;
    bridgedId: string;
    queue: QueueParameters | null;
    _muted: boolean;
    _mutedVideo: boolean;
    _recordFile: string | null;
    _recordCapture: StorageMediaCapture | null;
    _userId: number | null;
    meetingId: string | null;
    readonly hideNumber: boolean;
    digits: string[];
    applications: string[];
    voice: boolean;
    task: Task | null;
    autoAnswered: boolean;
    _eavesdrop: EavesdropData | null;
    _autoAnswerTimerId: any | null;
    _activeCounter: number;
    contact: Contact | null;
    originate: boolean;
    video: VideoMediaFlow | null;
    remoteVideo: VideoMediaFlow | null;
    conversation: Conversation | null;
    /**
     * Конструктор класу Call.
     * @param client - Клієнт, що керує дзвінком.
     * @param e - Дані події дзвінка.
     */
    constructor(client: Client, e: CallEventData);
    /**
     * Встановлює стан дзвінка.
     * @param s - Дані події дзвінка.
     */
    setState(s: CallEventData): void;
    /**
     * Встановлює SIP-сесію.
     * @param sip - SIP-сесія.
     */
    setSip(sip: CallSession | null): void;
    /**
     * Перевіряє, чи є ручний розподіл.
     * @returns Чи є ручний розподіл.
     */
    get manualDistribution(): boolean | null;
    /**
     * Отримує тривалість дзвінка.
     * @returns Тривалість дзвінка в секундах.
     */
    get duration(): number;
    /**
     * Перевіряє, чи дозволено DTMF.
     * @returns Чи дозволено DTMF.
     */
    get allowDtmf(): boolean;
    /**
     * Перевіряє, чи дозволено Transfer.
     * @returns Чи дозволено Transfer.
     */
    get allowTransfer(): boolean;
    /**
     * Перевіряє, чи дозволено завершення дзвінка.
     * @returns Чи дозволено завершення дзвінка.
     */
    get allowHangup(): boolean;
    /**
     * Перевіряє, чи дозволено утримання дзвінка.
     * @returns Чи дозволено утримання дзвінка.
     */
    get allowHold(): boolean;
    /**
     * Перевіряє, чи дозволено відповісти на дзвінок.
     * @returns Чи дозволено відповісти на дзвінок.
     */
    get allowAnswer(): boolean | undefined;
    /**
     * Перевіряє, чи дозволено зняти утримання.
     * @returns Чи дозволено зняти утримання.
     */
    get allowUnHold(): boolean;
    /**
     * Отримує комунікацію учасника.
     * @returns Комунікація учасника або null.
     */
    get memberCommunication(): MemberCommunication | null;
    /**
     * Перевіряє, чи є прослуховування.
     * @returns Чи є прослуховування.
     */
    get isEavesdrop(): boolean;
    /**
     * Отримує ім'я прослуховування.
     * @returns Ім'я прослуховування.
     */
    get eavesdropName(): string | undefined;
    /**
     * Отримує номер прослуховування.
     * @returns Номер прослуховування.
     */
    get eavesdropNumber(): string | undefined;
    /**
     * Отримує тривалість прослуховування.
     * @returns Тривалість прослуховування.
     */
    get eavesdropDuration(): number | undefined;
    /**
     * Отримує стан прослуховування.
     * @returns Стан прослуховування або null.
     */
    get eavesdropState(): EavesdropState | null;
    /**
     * Перевіряє, чи прослуховування в режимі мовчання.
     * @returns Чи прослуховування в режимі мовчання.
     */
    get eavesdropIsMuted(): boolean;
    /**
     * Перевіряє, чи прослуховування є конференцією.
     * @returns Чи прослуховування є конференцією.
     */
    get eavesdropIsConference(): boolean;
    /**
     * Перевіряє, чи прослуховування є запитом.
     * @returns Чи прослуховування є запитом.
     */
    get eavesdropIsPrompt(): boolean;
    /**
     * Отримує ідентифікатор контакту.
     * @returns Ідентифікатор контакту або null.
     */
    get contactId(): number | null;
    /**
     * Перевіряє, чи контакт потрібно приховати.
     * @returns Чи контакт потрібно приховати.
     */
    get hideContact(): boolean | null;
    /**
     * Отримує інформацію про учасника.
     * @param req - Запит інформації про учасника.
     * @returns Інформація про учасника.
     * @throws Помилка, якщо дзвінок не з виходу черги.
     */
    getMember(req: MemberInfoRequest): Promise<object>;
    /**
     * Перевіряє, чи дзвінок є учасником.
     * @returns Чи дзвінок є учасником.
     */
    get isMember(): boolean;
    /**
     * Перевіряє, чи перший активний дзвінок.
     * @returns Чи перший активний дзвінок.
     */
    get firstActive(): boolean;
    get recordings(): boolean;
    get allowRecordings(): boolean;
    get talking(): boolean;
    get hasVideo(): boolean;
    /**
     * Встановлює активність дзвінка.
     * @param e - Дані події дзвінка.
     */
    setActive(e: CallEventData): void;
    /**
     * Встановлює інформацію про мосту.
     * @param s - Дані події мосту.
     */
    setBridged(s: CallEventData): void;
    /**
     * Встановлює інформацію про утримання.
     * @param e - Дані події утримання.
     */
    setHold(e: CallEventData): void;
    /**
     * Встановлює ідентифікатор контакту.
     * @param id - Ідентифікатор контакту.
     */
    setContactId(id: number): void;
    /**
     * Встановлює інформацію про дзвінок.
     * @param s - Інформація про дзвінок.
     */
    setInfo(s: CallInfo): void;
    /**
     * Встановлює потоки для співрозмовників.
     * @param streams - Потоки для співрозмовників.
     */
    setPeerStreams(streams: MediaStream[] | null): void;
    /**
     * Встановлює локальні потоки.
     * @param streams - Локальні потоки.
     */
    setLocalStreams(streams: MediaStream[] | null): void;
    /**
     * Увімкнути голос.
     */
    setVoice(): void;
    /**
     * Вимкнути голос.
     */
    setSilence(): void;
    /**
     * Додає виконання програми.
     * @param s - Дані події виконання.
     */
    setExecute(s: CallEventExecute): void;
    /**
     * Додає DTMF.
     * @param s - Дані події DTMF.
     */
    addDigit(s: CallEventDTMF): void;
    /**
     * Встановлює стан прослуховування.
     * @param e - Дані події прослуховування.
     */
    setEavesdropState(e: CallEventEavesdrop): void;
    /**
     * Встановлює інформацію про завершення дзвінка.
     * @param s - Дані події завершення дзвінка.
     */
    setHangup(s: CallEventData): void;
    /**
     * Перевіряє, чи дозволена звітність.
     * @returns Чи дозволена звітність.
     */
    get allowReporting(): boolean;
    /**
     * Перевіряє, чи є звітність.
     * @returns Чи є звітність.
     */
    get hasReporting(): boolean;
    /**
     * Отримує відображення дзвінка.
     * @returns Відображення дзвінка.
     */
    get display(): string;
    /**
     * Перевіряє, чи вимкнений звук.
     * @returns Чи вимкнений звук.
     */
    get muted(): boolean;
    /**
     * Перевіряє, чи дзвінок перебуває в режимі утримання.
     * @returns Чи дзвінок перебуває в режимі утримання.
     */
    get isHold(): boolean;
    /**
     * Перевіряє, чи дозволено відео для вхідних дзвінків.
     * @returns Чи дозволено відео для вхідних дзвінків.
     */
    get allowInboundVideo(): boolean;
    /**
     * Перевіряє, чи дозволено відео для вихідних дзвінків.
     * @returns Чи дозволено відео для вихідних дзвінків.
     */
    get allowOutboundVideo(): boolean;
    /**
     * Перевіряє, чи дзвінок активний.
     * @returns Чи дзвінок активний.
     */
    get active(): boolean;
    /**
     * Отримує номер для відображення.
     * @returns Номер для відображення.
     */
    get displayNumber(): string | undefined;
    get _displayNameValue(): string | undefined;
    /**
     * Отримує ім'я для відображення.
     * @returns Ім'я для відображення.
     */
    get displayName(): string | undefined;
    /**
     * Перевіряє, чи дозволено автоматичне відповідання.
     * @returns Чи дозволено автоматичне відповідання.
     */
    get autoAnswer(): boolean;
    /**
     * Отримує затримку автоматичного відповідання.
     * @returns Затримка автоматичного відповідання.
     */
    get autoAnswerDelay(): number;
    /**
     * Отримує спробу.
     * @returns Спроба.
     */
    get attempt(): Task | null;
    /**
     * Відповідає на дзвінок.
     * @param req - Запит на відповідання.
     * @returns Чи успішно відповіли.
     */
    answer(req: AnswerRequest): Promise<boolean>;
    /**
     * Затримка автоматичного відповідання.
     * @param req - Запит на відповідання.
     */
    answerDelay(req: AnswerRequest): void;
    /**
     * Завершує дзвінок.
     * @param cause - Причина завершення.
     * @returns Результат завершення дзвінка.
     */
    hangup(cause?: string): Promise<object>;
    /**
     * Запускає прослуховування дзвінка.
     * @param req - Запит на прослуховування.
     * @returns Результат прослуховування.
     */
    eavesdrop(req: EavesdropRequest): Promise<object>;
    /**
     * Змінює стан прослуховування.
     * @param state - Новий стан прослуховування.
     * @returns Результат зміни стану прослуховування.
     */
    changeEavesdropState(state: EavesdropState): Promise<object>;
    /**
     * Перемикає утримання дзвінка.
     * @returns Результат утримання дзвінка.
     */
    toggleHold(): Promise<object>;
    /**
     * Утримує дзвінок.
     * @returns Результат утримання дзвінка.
     */
    hold(): Promise<object>;
    /**
     * Виймає дзвінок з утримання.
     * @returns Результат виймання дзвінка з утримання.
     */
    unHold(): Promise<object>;
    /**
     * Надсилає DTMF.
     * @param dtmf - DTMF.
     * @returns Результат надсилання DTMF.
     */
    sendDTMF(dtmf: string): Promise<object>;
    /**
     * Виконує сліпий переказ дзвінка.
     * @param destination - Місце призначення.
     * @param variables - Змінні.
     * @returns Результат переказу.
     */
    blindTransfer(destination: string, variables?: object): Promise<object>;
    /**
     * Вимикає або включає мікрофон.
     * @param mute - Якщо true, вимикає мікрофон; якщо false, включає мікрофон.
     * @returns Результат вимикання або включення мікрофона.
     */
    mute(mute?: boolean): Promise<object>;
    muteVideo(mute?: boolean): Promise<void>;
    trySendInfo(syncRequested?: boolean): void;
    get mutedVideo(): boolean;
    get remoteVideoMuted(): boolean | null;
    get remoteAudioMuted(): boolean | null;
    get remoteHold(): boolean | null;
    get allowRecordCall(): boolean;
    /**
     * Створює міст між дзвінками.
     * @param call - Дзвінок, з яким створюється міст.
     * @param variables - Змінні.
     * @returns Результат створення мосту.
     */
    bridgeTo(call: Call, variables?: object): Promise<object>;
    /**
     * Надсилає звітність про дзвінок.
     * @param reporting - Дані звітності.
     * @returns Результат надсилання звітності.
     */
    reporting(reporting: Reporting): Promise<object>;
    /**
     * Оновлює розмову.
     * @param sec - Кількість секунд.
     * @returns Результат оновлення розмови.
     */
    renew(sec?: number): Promise<object>;
    /**
     * Робить запрошення користувача.
     * @param req - Запит на запрошення.
     * @returns Результат запрошення.
     */
    callToUser(req: UserCallRequest): Promise<object>;
    /**
     * Встановлює контакт для дзвінка.
     * @param contactId - Ідентифікатор контакту.
     * @returns Результат встановлення контакту.
     */
    setContact(contactId: number): Promise<object>;
    processTransferAgent(agentId: number, params: CallParams): Promise<object>;
    processTransferQueue(queueId: number, params: CallParams): Promise<object>;
    blindTransferQueue(queueId: number): Promise<object>;
    startRecordNative(name?: string): Promise<void>;
    stopRecordNative(): Promise<void>;
    startRecord(name: string): Promise<void>;
    stopRecord(): void;
    screenshot(name: string): Promise<unknown>;
    /**
     * Встановлює дані контакту.
     * @param e - Дані події контакту.
     */
    private setContactData;
    private setVideo;
}
export {};
//# sourceMappingURL=call.d.ts.map