import { NCCOAction } from '../../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/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';

/**
 * A builder class for creating Nexmo Call Control Objects (NCCOs).
 */
declare class NCCOBuilder {
    protected actions: Array<NCCOAction>;
    /**
     * Add an action to the NCCO builder.
     *
     * @param {Action} action - The action to add to the NCCO.
     * @return {NCCOBuilder} - The NCCO builder instance (for method chaining).
     */
    addAction(action: NCCOAction): NCCOBuilder;
    /**
     * Build the NCCO by serializing the added actions.
     *
     * @return {Array<Action | Serializable>} - The built NCCO, which is an array of actions.
     */
    build(): Array<NCCOAction>;
}

export { NCCOBuilder };
