import { Message, PathEventEmitter } from './core';
import { Momentum } from './momentum';
export type AiReceptionist = {
    ai: {
        tools?: [];
    } & InteractiveCall;
};
export type ForwardCall = {
    forward: {
        user: string;
        prompt?: string;
    } | {
        number: string;
        prompt?: string;
    };
};
export type HangupCall = {
    hangup: string;
};
export type RecordCall = {
    record: {
        path?: string;
        prompt?: string;
        length?: string;
    };
};
export type Repeat = {
    repeat: true;
};
export type InteractiveCall = {
    /** Default message */
    '_': string | AiReceptionist | ForwardCall | HangupCall | RecordCall;
    /** Interactive voice response on key press */
    [key: string]: string | AiReceptionist | ForwardCall | HangupCall | RecordCall | Repeat | InteractiveCall;
};
/** Create call with steps */
export type PhoneCall = Omit<Message, 'body'> & {
    /** Text to speech, use dictionary to create an interactive voice response system (IVR) */
    body: string | InteractiveCall;
    /** Create voice recording of call */
    record?: boolean;
};
/** Send messages */
export declare class Call extends PathEventEmitter {
    protected momentum: Momentum;
    constructor(momentum: Momentum);
    /**
     * Place a call to number
     * @param {Call} message Text that will be converted to speech
     * @return {Promise<any>} Twilio call instance
     */
    create(message: PhoneCall): Promise<any>;
    /**
     * Get available numbers and voice
     */
    info(): Promise<{
        numbers: string[];
        voice: string;
    }>;
}
//# sourceMappingURL=call.d.ts.map