import { Action } from '../../types/NCCO/Action.mjs';
import '../../types/NCCO/NCCOActions.mjs';
import '../../types/NCCO/RecordAction.mjs';
import '../../enums/NCCOActions.mjs';
import '../../enums/NCCO/RecordingFormat.mjs';
import '../../types/NCCO/ConversationAction.mjs';
import '../../types/NCCO/ConnectAction.mjs';
import '../../types/Endpoint/CallEndpoint.mjs';
import '../../types/Endpoint/PhoneEndpoint.mjs';
import '../../types/Endpoint/SIPEndpoint.mjs';
import '../../types/Endpoint/VBCEndpoint.mjs';
import '../../types/Endpoint/WebsocketEndpoint.mjs';
import '../../types/Endpoint/WebsocketAuthorization.mjs';
import '../../enums/Endpoint/WebsocketBitrate.mjs';
import '../../types/Endpoint/AppEndpoint.mjs';
import '../../enums/NCCO/ConnectEventType.mjs';
import '../../enums/NCCO/MachineDetection.mjs';
import '../../types/NCCO/TalkAction.mjs';
import '../../enums/TTSLanguages.mjs';
import '../../types/NCCO/StreamAction.mjs';
import '../../types/NCCO/InputAction.mjs';
import '../../types/NCCO/DTMFSettings.mjs';
import '../../types/NCCO/SpeechSettings.mjs';
import '../../types/NCCO/NotifyAction.mjs';
import '../../types/NCCO/WaitAction.mjs';

/**
 * Represents a Nexmo Call Control Object (NCCO) transfer action.
 */
interface NCCOTransfer {
    /**
     * The action type, which is 'transfer'.
     */
    action: string;
    /**
     * The destination of the transfer, including the type and NCCO actions.
     */
    destination: {
        /**
         * The type of destination, which is 'ncco'.
         */
        type: string;
        /**
         * The NCCO actions to be executed at the destination.
         */
        ncco: Action[];
    };
}
/**
 * Represents a Nexmo Call Control Object (NCCO) URL transfer action.
 */
interface URLTransfer {
    /**
     * The action type, which is 'transfer'.
     */
    action: string;
    /**
     * The destination of the transfer, including the type and URL.
     */
    destination: {
        /**
         * The type of destination, which is 'url'.
         */
        type: string;
        /**
         * The URL to which the call will be transferred.
         */
        url: string[];
    };
}

export type { NCCOTransfer, URLTransfer };
