/// <reference types="node" />
import { URL } from "url";
import { Twilio } from "twilio";
import { Call, TwilioConnectionEvents } from "./twilio";
import { Caller, RequestedCall } from "./Caller";
import { IvrNumber } from "../configuration/call/IvrNumber";
export interface TwilioMediaStreamStartEvent {
    event: TwilioConnectionEvents.MediaStreamStart;
    streamSid: string;
    start: {
        customParameters: {
            from: string;
            to: string;
        };
    };
}
export declare class TwilioCaller implements Caller<IvrNumber> {
    private readonly twilioClient;
    private static debug;
    constructor(twilioClient: Twilio);
    private static addParameters;
    static extractParameters(event: TwilioMediaStreamStartEvent): Call;
    call(call: IvrNumber, streamUrl: URL | string): Promise<RequestedCall>;
}
