import { CallApiContextParams, CallApiOptionsParams, EnvOverrides, ProviderOptions, ProviderResponse } from 'promptfoo';
import ExternalProvider from './external.js';
type Realm = 'dev' | 'stage' | 'prod';
type EnvOverridesWithTwilio = EnvOverrides & {
    TWILIO_ACCOUNT_SID?: string;
    TWILIO_AUTH_TOKEN?: string;
    TWILIO_REGION?: string;
    TWILIO_ASSISTANT_ID?: string;
};
export type TwilioProviderOptions = ProviderOptions & {
    config: {
        twilioRegion?: Realm;
        assistantId?: string;
        accountSid?: string;
        authTokenKey?: string;
        sessionId?: string;
        identity?: string;
        constellationOverride?: string;
    };
    env: EnvOverridesWithTwilio;
};
export type TwilioProviderResponse = ProviderResponse & {
    metadata?: {
        sessionId: string;
        assistantId: string;
        flagged: boolean;
        accountSid: string;
    };
};
export declare function getAssistantUrl(assistantId: string, region: string): string;
export default class TwilioProvider extends ExternalProvider {
    private readonly sessionId?;
    private readonly userIdentity;
    private readonly region;
    constructor(options: TwilioProviderOptions);
    protected getUrl(prompt: string, context?: CallApiContextParams, callApiOptions?: CallApiOptionsParams): string;
    protected getBody(prompt: string, context?: CallApiContextParams, _callApiOptions?: CallApiOptionsParams): string;
    protected getResponse(response: Response): Promise<TwilioProviderResponse>;
}
export {};
//# sourceMappingURL=twilio.d.ts.map