import { GatewayBaseError, ToolCallContentType, ToolResponseContentType } from '@adaline/types';
import { Context, Tracer, Meter } from '@opentelemetry/api';
import { z } from 'zod';
import { ChatModelV1, EmbeddingModelV1 } from '@adaline/provider';
import { AxiosInstance } from 'axios';

declare class GatewayError extends Error {
    status: number;
    data: unknown;
    constructor(message: string, status?: number, data?: unknown);
}
declare class GatewayTelemetryError extends GatewayBaseError {
    readonly info: string;
    readonly cause: unknown;
    constructor({ info, cause }: {
        info: string;
        cause: unknown;
    });
    static isGatewayTelemetryError(error: unknown): error is GatewayTelemetryError;
}

type HttpClientOptions = {
    retry?: {
        maxAttempts: number;
        initialDelay: number;
        exponentialFactor: number;
    };
};
interface HttpClient {
    stream<T>(url: string, method: "get" | "post", data?: Record<string, unknown>, headers?: Record<string, string>, options?: {
        abortSignal?: AbortSignal;
    }, telemetryContext?: Context): AsyncGenerator<T, void, unknown>;
    get<T>(url: string, params?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    post<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    put<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    delete<T>(url: string, params?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    patch<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
}
interface HttpClientResponse<T> {
    data: T;
    headers: Record<string, string>;
    status: {
        code: number;
        text: string;
    };
}

declare class HttpClientError extends GatewayBaseError {
    readonly info: string;
    readonly cause: unknown;
    constructor({ info, cause }: {
        info: string;
        cause: unknown;
    });
    static isHttpClientError(error: unknown): error is HttpClientError;
}
declare class HttpRequestError extends GatewayBaseError {
    readonly info: string;
    readonly cause: {
        status: number;
        headers: Record<string, string>;
        data: unknown;
    };
    constructor(message: string, status: number | undefined, headers: Record<string, string>, data: unknown);
    static isHttpRequestError(error: unknown): error is HttpRequestError;
}

interface IsomorphicHttpClientConfig {
    timeoutInMilliseconds?: number;
    axiosInstance?: AxiosInstance;
    telemetryTracer?: Tracer;
    enableProxyAgent?: boolean;
}
declare class IsomorphicHttpClient implements HttpClient {
    private defaultTimeout?;
    private client;
    private httpProxyAgent?;
    private httpsProxyAgent?;
    private enableProxyAgent;
    constructor(config: IsomorphicHttpClientConfig);
    isNodeEnvironment: () => boolean;
    private makeRequest;
    stream<T>(url: string, method: "get" | "post", data?: Record<string, unknown>, headers?: Record<string, string>, options?: {
        abortSignal?: AbortSignal;
    }, telemetryContext?: Context): AsyncGenerator<T, void, unknown>;
    get<T>(url: string, params?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    post<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    put<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    delete<T>(url: string, params?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
    patch<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string | undefined>, options?: HttpClientOptions, telemetryContext?: Context): Promise<HttpClientResponse<T>>;
}

declare class QueueTaskTimeoutError extends GatewayBaseError {
    readonly info: string;
    readonly cause: unknown;
    constructor({ info, cause }: {
        info: string;
        cause: unknown;
    });
    static isQueueTaskTimeoutError(error: unknown): error is QueueTaskTimeoutError;
}

interface Cache<T> {
    get(key: string): Promise<T | undefined>;
    set(key: string, value: T): Promise<void>;
    delete(key: string): Promise<void>;
    clear(): Promise<void>;
}

declare class LRUCache<T extends object> implements Cache<T> {
    private cache;
    constructor(maxEntries?: number);
    get(key: string): Promise<T | undefined>;
    set(key: string, value: T): Promise<void>;
    delete(key: string): Promise<void>;
    clear(): Promise<void>;
}

type QueueTask<Request, Response> = {
    id: string;
    request: Request;
    cache?: Cache<Response>;
    resolve: (value: Response) => void;
    reject: (error: any) => void;
    execute: (request: Request, context: Context) => Promise<Response>;
    telemetryContext: Context;
};
interface Queue<Request, Response> {
    enqueue(task: QueueTask<Request, Response>): void;
}
declare const QueueOptions: z.ZodObject<{
    maxConcurrentTasks: z.ZodNumber;
    retryCount: z.ZodNumber;
    timeout: z.ZodNumber;
    retry: z.ZodObject<{
        initialDelay: z.ZodNumber;
        exponentialFactor: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        initialDelay: number;
        exponentialFactor: number;
    }, {
        initialDelay: number;
        exponentialFactor: number;
    }>;
}, "strip", z.ZodTypeAny, {
    timeout: number;
    retry: {
        initialDelay: number;
        exponentialFactor: number;
    };
    maxConcurrentTasks: number;
    retryCount: number;
}, {
    timeout: number;
    retry: {
        initialDelay: number;
        exponentialFactor: number;
    };
    maxConcurrentTasks: number;
    retryCount: number;
}>;
type QueueOptionsType = z.infer<typeof QueueOptions>;

declare class SimpleQueue<Request, Response> implements Queue<Request, Response> {
    private options;
    private activeTasks;
    private queue;
    constructor(options: QueueOptionsType);
    enqueue(task: QueueTask<Request, Response>): void;
    private executeWithTimeout;
    private executeWithRetry;
    private processQueue;
}

type AnalyticsNodeEnvironment = {
    node: {
        version: string;
        platform: string;
        architecture: string;
    };
};
type AnalyticsBrowserEnvironment = {
    browser: {
        version: string;
        userAgent: string;
    };
};
type AnalyticsEvent = {
    event: string;
    timestamp: string;
    dimensions: {
        [key: string]: any;
    };
    status: string;
    eventVersion: string;
    gatewayVersion: string;
    environment: AnalyticsNodeEnvironment | AnalyticsBrowserEnvironment;
    userId?: string;
};
interface AnalyticsRecorder {
    record(event: AnalyticsEvent["event"], status: AnalyticsEvent["status"], dimensions: AnalyticsEvent["dimensions"]): void;
    stopRecorder(): void;
}

declare class AnalyticsManager {
    private static analytics;
    static getAnalyticsRecorder(enableAnalytics: boolean): AnalyticsRecorder;
}

declare class PostAnalytics implements AnalyticsRecorder {
    private readonly eventVersion;
    private readonly gatewayVersion;
    private flushTimer;
    private flushInterval;
    private batchSize;
    private maxAttempts;
    private environment;
    private analyticsEndpointUrl;
    private events;
    constructor();
    private startFlushTimer;
    private stopFlushTimer;
    record(event: AnalyticsEvent["event"], status: AnalyticsEvent["status"], dimensions: AnalyticsEvent["dimensions"]): void;
    private flushEvents;
    private sendEvents;
    stopRecorder(): void;
}

declare class NoOpAnalytics implements AnalyticsRecorder {
    record(event: AnalyticsEvent["event"], status: AnalyticsEvent["status"], dimensions: AnalyticsEvent["dimensions"]): void;
    stopRecorder(): void;
}

declare class TelemetryManager {
    static DEFAULT_TRACER_KEY: string;
    static DEFAULT_METER_KEY: string;
    private static tracer;
    private static meter;
    static setTracer(tracer: Tracer | undefined): void;
    static getTracer(): Tracer;
    static setMeter(meter: Meter | undefined): void;
    static getMeter(): Meter;
}

interface Logger {
    debug(message: string, ...params: any[]): void;
    info(message: string, ...params: any[]): void;
    warn(message: string, ...params: any[]): void;
    error(message: string, ...params: any[]): void;
    critical(message: string, ...params: any[]): void;
}

declare class LoggerManager {
    private static logger;
    static setLogger(logger: Logger | undefined): void;
    static getLogger(): Logger | undefined;
}

declare class ConsoleLogger implements Logger {
    debug(message: string, ...params: any[]): void;
    info(message: string, ...params: any[]): void;
    warn(message: string, ...params: any[]): void;
    error(message: string, ...params: any[]): void;
    critical(message: string, ...params: any[]): void;
}

declare const CompleteChatHandlerRequest: z.ZodObject<{
    cache: z.ZodType<Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>, z.ZodTypeDef, Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>>;
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    config: z.ZodRecord<z.ZodString, z.ZodAny>;
    messages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
        content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"image">;
            detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
                mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"pdf">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
            }, {
                type: "base64";
                base64: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            file: z.ZodObject<{
                name: z.ZodString;
                id: z.ZodString;
                size: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                id: string;
                size?: number | undefined;
            }, {
                name: string;
                id: string;
                size?: number | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-call">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            arguments: z.ZodString;
            serverName: z.ZodOptional<z.ZodString>;
            thoughtSignature: z.ZodOptional<z.ZodString>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-response">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            data: z.ZodString;
            apiResponse: z.ZodOptional<z.ZodObject<{
                statusCode: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                statusCode: number;
            }, {
                statusCode: number;
            }>>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodString;
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking: string;
                signature: string;
            }, {
                type: "thinking";
                thinking: string;
                signature: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"error">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"safety">;
                value: z.ZodObject<{
                    category: z.ZodString;
                    probability: z.ZodString;
                    blocked: z.ZodBoolean;
                    message: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }>, z.ZodObject<{
                type: z.ZodLiteral<"response_error">;
                value: z.ZodObject<{
                    code: z.ZodString;
                    message: z.ZodString;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"search-result">;
            value: z.ZodObject<{
                type: z.ZodOptional<z.ZodString>;
                query: z.ZodString;
                responses: z.ZodArray<z.ZodObject<{
                    source: z.ZodString;
                    url: z.ZodString;
                    title: z.ZodString;
                    snippet: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }>, "many">;
                references: z.ZodArray<z.ZodObject<{
                    text: z.ZodString;
                    responseIndices: z.ZodArray<z.ZodNumber, "many">;
                    startIndex: z.ZodOptional<z.ZodNumber>;
                    endIndex: z.ZodOptional<z.ZodNumber>;
                    confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                }, "strip", z.ZodTypeAny, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }>]>, "many">;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }>, "many">;
    tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
        type: z.ZodEnum<["function"]>;
        definition: z.ZodObject<{
            schema: z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
                parameters: z.ZodAny;
                strict: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }>;
        }, "strip", z.ZodTypeAny, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }>;
        request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"http">;
            method: z.ZodEnum<["get", "post"]>;
            url: z.ZodString;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            proxyUrl: z.ZodOptional<z.ZodString>;
            proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxAttempts: z.ZodNumber;
                initialDelay: z.ZodNumber;
                exponentialFactor: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }>>;
        }, "strip", z.ZodTypeAny, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }>]>>;
    }, {
        metadata: z.ZodTypeAny;
    }>, "strip", z.ZodTypeAny, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }>]>, "many">>;
    enableCache: z.ZodBoolean;
    customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    callbacks: z.ZodOptional<z.ZodArray<z.ZodType<CompleteChatCallbackType<any>, z.ZodTypeDef, CompleteChatCallbackType<any>>, "atleastone">>;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
    cache: Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>;
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    enableCache: boolean;
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [CompleteChatCallbackType<any>, ...CompleteChatCallbackType<any>[]] | undefined;
}, {
    cache: Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>;
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    enableCache: boolean;
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [CompleteChatCallbackType<any>, ...CompleteChatCallbackType<any>[]] | undefined;
}>;
type CompleteChatHandlerRequestType = z.infer<typeof CompleteChatHandlerRequest>;
declare const CompleteChatHandlerResponse: z.ZodObject<{
    request: z.ZodObject<{
        config: z.ZodRecord<z.ZodString, z.ZodAny>;
        messages: z.ZodArray<z.ZodObject<{
            role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
            content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
                modality: z.ZodLiteral<"text">;
                value: z.ZodString;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"image">;
                detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                    mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"pdf">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                }, {
                    type: "base64";
                    base64: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                file: z.ZodObject<{
                    name: z.ZodString;
                    id: z.ZodString;
                    size: z.ZodOptional<z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-call">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                arguments: z.ZodString;
                serverName: z.ZodOptional<z.ZodString>;
                thoughtSignature: z.ZodOptional<z.ZodString>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }, {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-response">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                data: z.ZodString;
                apiResponse: z.ZodOptional<z.ZodObject<{
                    statusCode: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    statusCode: number;
                }, {
                    statusCode: number;
                }>>;
                metadata: z.ZodTypeAny;
            }, "strip", z.ZodTypeAny, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"reasoning">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"thinking">;
                    thinking: z.ZodString;
                    signature: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"redacted">;
                    data: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "redacted";
                    data: string;
                }, {
                    type: "redacted";
                    data: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"error">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"safety">;
                    value: z.ZodObject<{
                        category: z.ZodString;
                        probability: z.ZodString;
                        blocked: z.ZodBoolean;
                        message: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"response_error">;
                    value: z.ZodObject<{
                        code: z.ZodString;
                        message: z.ZodString;
                        provider: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"search-result">;
                value: z.ZodObject<{
                    type: z.ZodOptional<z.ZodString>;
                    query: z.ZodString;
                    responses: z.ZodArray<z.ZodObject<{
                        source: z.ZodString;
                        url: z.ZodString;
                        title: z.ZodString;
                        snippet: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }>, "many">;
                    references: z.ZodArray<z.ZodObject<{
                        text: z.ZodString;
                        responseIndices: z.ZodArray<z.ZodNumber, "many">;
                        startIndex: z.ZodOptional<z.ZodNumber>;
                        endIndex: z.ZodOptional<z.ZodNumber>;
                        confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                    }, "strip", z.ZodTypeAny, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }>]>, "many">;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }>, "many">;
        tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
            type: z.ZodEnum<["function"]>;
            definition: z.ZodObject<{
                schema: z.ZodObject<{
                    name: z.ZodString;
                    description: z.ZodString;
                    parameters: z.ZodAny;
                    strict: z.ZodOptional<z.ZodBoolean>;
                }, "strip", z.ZodTypeAny, {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                }, {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                }>;
            }, "strip", z.ZodTypeAny, {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            }, {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            }>;
            request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"http">;
                method: z.ZodEnum<["get", "post"]>;
                url: z.ZodString;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                proxyUrl: z.ZodOptional<z.ZodString>;
                proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                retry: z.ZodOptional<z.ZodObject<{
                    maxAttempts: z.ZodNumber;
                    initialDelay: z.ZodNumber;
                    exponentialFactor: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                }, {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                }>>;
            }, "strip", z.ZodTypeAny, {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            }, {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            }>]>>;
        }, {
            metadata: z.ZodTypeAny;
        }>, "strip", z.ZodTypeAny, {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }, {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }>]>, "many">>;
    }, "strip", z.ZodTypeAny, {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    }, {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    }>;
    response: z.ZodObject<{
        messages: z.ZodArray<z.ZodObject<{
            role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
            content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
                modality: z.ZodLiteral<"text">;
                value: z.ZodString;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"image">;
                detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                    mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"pdf">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                }, {
                    type: "base64";
                    base64: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                file: z.ZodObject<{
                    name: z.ZodString;
                    id: z.ZodString;
                    size: z.ZodOptional<z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-call">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                arguments: z.ZodString;
                serverName: z.ZodOptional<z.ZodString>;
                thoughtSignature: z.ZodOptional<z.ZodString>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }, {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-response">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                data: z.ZodString;
                apiResponse: z.ZodOptional<z.ZodObject<{
                    statusCode: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    statusCode: number;
                }, {
                    statusCode: number;
                }>>;
                metadata: z.ZodTypeAny;
            }, "strip", z.ZodTypeAny, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"reasoning">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"thinking">;
                    thinking: z.ZodString;
                    signature: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"redacted">;
                    data: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "redacted";
                    data: string;
                }, {
                    type: "redacted";
                    data: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"error">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"safety">;
                    value: z.ZodObject<{
                        category: z.ZodString;
                        probability: z.ZodString;
                        blocked: z.ZodBoolean;
                        message: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"response_error">;
                    value: z.ZodObject<{
                        code: z.ZodString;
                        message: z.ZodString;
                        provider: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"search-result">;
                value: z.ZodObject<{
                    type: z.ZodOptional<z.ZodString>;
                    query: z.ZodString;
                    responses: z.ZodArray<z.ZodObject<{
                        source: z.ZodString;
                        url: z.ZodString;
                        title: z.ZodString;
                        snippet: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }>, "many">;
                    references: z.ZodArray<z.ZodObject<{
                        text: z.ZodString;
                        responseIndices: z.ZodArray<z.ZodNumber, "many">;
                        startIndex: z.ZodOptional<z.ZodNumber>;
                        endIndex: z.ZodOptional<z.ZodNumber>;
                        confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                    }, "strip", z.ZodTypeAny, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }>]>, "many">;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            promptTokens: z.ZodNumber;
            completionTokens: z.ZodNumber;
            totalTokens: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        }, {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        }>>;
        logProbs: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
            token: z.ZodString;
            logProb: z.ZodNumber;
            bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
        }, {
            topLogProbs: z.ZodArray<z.ZodObject<{
                token: z.ZodString;
                logProb: z.ZodNumber;
                bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
            }, "strip", z.ZodTypeAny, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }>, "many">;
        }>, "strip", z.ZodTypeAny, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }, {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }>;
    cached: z.ZodBoolean;
    latencyInMs: z.ZodNumber;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    provider: z.ZodObject<{
        request: z.ZodAny;
        response: z.ZodAny;
    }, "strip", z.ZodTypeAny, {
        request?: any;
        response?: any;
    }, {
        request?: any;
        response?: any;
    }>;
}, "strip", z.ZodTypeAny, {
    request: {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    };
    response: {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    };
    cached: boolean;
    latencyInMs: number;
    provider: {
        request?: any;
        response?: any;
    };
    metadataForCallbacks?: any;
}, {
    request: {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    };
    response: {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    };
    cached: boolean;
    latencyInMs: number;
    provider: {
        request?: any;
        response?: any;
    };
    metadataForCallbacks?: any;
}>;
type CompleteChatHandlerResponseType = z.infer<typeof CompleteChatHandlerResponse>;
type CompleteChatCallbackType<M = any> = {
    onChatStart?: (metadata?: M) => Promise<void> | void;
    onChatCached?: (metadata?: M, response?: CompleteChatHandlerResponseType) => Promise<void> | void;
    onChatComplete?: (metadata?: M, response?: CompleteChatHandlerResponseType) => Promise<void> | void;
    onChatError?: (metadata?: M, error?: GatewayError | HttpRequestError) => Promise<void> | void;
};

declare function handleCompleteChat(request: CompleteChatHandlerRequestType, client: HttpClient, telemetryContext?: Context): Promise<CompleteChatHandlerResponseType>;

declare const GetChatUsageCostHandlerRequest: z.ZodEffects<z.ZodObject<{
    chatUsage: z.ZodType<{
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }, z.ZodTypeDef, {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }>;
    chatModelPrice: z.ZodOptional<z.ZodType<{
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    }, z.ZodTypeDef, {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    }>>;
    model: z.ZodOptional<z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>>;
}, "strip", z.ZodTypeAny, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}>, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}>;
type GetChatUsageCostHandlerRequestType = z.infer<typeof GetChatUsageCostHandlerRequest>;
declare const GetChatUsageCostHandlerResponse: z.ZodObject<{
    cost: z.ZodNumber;
    currency: z.ZodString;
    pricingModel: z.ZodType<{
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    }, z.ZodTypeDef, {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    }>;
    usageTokens: z.ZodType<{
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }, z.ZodTypeDef, {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }>;
}, "strip", z.ZodTypeAny, {
    cost: number;
    currency: string;
    pricingModel: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    };
    usageTokens: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
}, {
    cost: number;
    currency: string;
    pricingModel: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    };
    usageTokens: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
}>;
type GetChatUsageCostHandlerResponseType = z.infer<typeof GetChatUsageCostHandlerResponse>;

declare function handleGetChatUsageCost(request: GetChatUsageCostHandlerRequestType): GetChatUsageCostHandlerResponseType;

declare const GetEmbeddingsHandlerRequest: z.ZodObject<{
    cache: z.ZodType<Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>, z.ZodTypeDef, Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>>;
    model: z.ZodType<EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>, z.ZodTypeDef, EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>>;
    config: z.ZodRecord<z.ZodString, z.ZodAny>;
    embeddingRequests: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"text">;
        metadata: z.ZodUndefined;
        requests: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    }, {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    }>, z.ZodObject<{
        modality: z.ZodLiteral<"token">;
        metadata: z.ZodUndefined;
        requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
    }, "strip", z.ZodTypeAny, {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    }, {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    }>]>;
    enableCache: z.ZodBoolean;
    customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    callbacks: z.ZodOptional<z.ZodArray<z.ZodType<GetEmbeddingsCallbackType<any>, z.ZodTypeDef, GetEmbeddingsCallbackType<any>>, "atleastone">>;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
    cache: Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>;
    config: Record<string, any>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    enableCache: boolean;
    embeddingRequests: {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    } | {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    };
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [GetEmbeddingsCallbackType<any>, ...GetEmbeddingsCallbackType<any>[]] | undefined;
}, {
    cache: Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>;
    config: Record<string, any>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    enableCache: boolean;
    embeddingRequests: {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    } | {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    };
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [GetEmbeddingsCallbackType<any>, ...GetEmbeddingsCallbackType<any>[]] | undefined;
}>;
type GetEmbeddingsHandlerRequestType = z.infer<typeof GetEmbeddingsHandlerRequest>;
declare const GetEmbeddingsHandlerResponse: z.ZodObject<{
    request: z.ZodObject<{
        config: z.ZodRecord<z.ZodString, z.ZodAny>;
        embeddingRequests: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            metadata: z.ZodUndefined;
            requests: z.ZodArray<z.ZodString, "many">;
        }, "strip", z.ZodTypeAny, {
            modality: "text";
            requests: string[];
            metadata?: undefined;
        }, {
            modality: "text";
            requests: string[];
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"token">;
            metadata: z.ZodUndefined;
            requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
        }, "strip", z.ZodTypeAny, {
            modality: "token";
            requests: number[][];
            metadata?: undefined;
        }, {
            modality: "token";
            requests: number[][];
            metadata?: undefined;
        }>]>;
    }, "strip", z.ZodTypeAny, {
        config: Record<string, any>;
        embeddingRequests: {
            modality: "text";
            requests: string[];
            metadata?: undefined;
        } | {
            modality: "token";
            requests: number[][];
            metadata?: undefined;
        };
    }, {
        config: Record<string, any>;
        embeddingRequests: {
            modality: "text";
            requests: string[];
            metadata?: undefined;
        } | {
            modality: "token";
            requests: number[][];
            metadata?: undefined;
        };
    }>;
    response: z.ZodDiscriminatedUnion<"encodingFormat", [z.ZodObject<{
        encodingFormat: z.ZodLiteral<"float">;
        embeddings: z.ZodArray<z.ZodObject<{
            index: z.ZodNumber;
            embedding: z.ZodArray<z.ZodNumber, "many">;
        }, "strip", z.ZodTypeAny, {
            index: number;
            embedding: number[];
        }, {
            index: number;
            embedding: number[];
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            totalTokens: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            totalTokens: number;
        }, {
            totalTokens: number;
        }>>;
    }, "strip", z.ZodTypeAny, {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }, {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }>, z.ZodObject<{
        encodingFormat: z.ZodLiteral<"base64">;
        embeddings: z.ZodArray<z.ZodObject<{
            index: z.ZodNumber;
            embedding: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            index: number;
            embedding: string;
        }, {
            index: number;
            embedding: string;
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            totalTokens: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            totalTokens: number;
        }, {
            totalTokens: number;
        }>>;
    }, "strip", z.ZodTypeAny, {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }, {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }>]>;
    cached: z.ZodBoolean;
    latencyInMs: z.ZodNumber;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    provider: z.ZodObject<{
        request: z.ZodAny;
        response: z.ZodAny;
    }, "strip", z.ZodTypeAny, {
        request?: any;
        response?: any;
    }, {
        request?: any;
        response?: any;
    }>;
}, "strip", z.ZodTypeAny, {
    request: {
        config: Record<string, any>;
        embeddingRequests: {
            modality: "text";
            requests: string[];
            metadata?: undefined;
        } | {
            modality: "token";
            requests: number[][];
            metadata?: undefined;
        };
    };
    response: {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    } | {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    };
    cached: boolean;
    latencyInMs: number;
    provider: {
        request?: any;
        response?: any;
    };
    metadataForCallbacks?: any;
}, {
    request: {
        config: Record<string, any>;
        embeddingRequests: {
            modality: "text";
            requests: string[];
            metadata?: undefined;
        } | {
            modality: "token";
            requests: number[][];
            metadata?: undefined;
        };
    };
    response: {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    } | {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    };
    cached: boolean;
    latencyInMs: number;
    provider: {
        request?: any;
        response?: any;
    };
    metadataForCallbacks?: any;
}>;
type GetEmbeddingsHandlerResponseType = z.infer<typeof GetEmbeddingsHandlerResponse>;
type GetEmbeddingsCallbackType<M = any> = {
    onGetEmbeddingsStart?: (metadata?: M) => Promise<void> | void;
    onGetEmbeddingsCached?: (metadata?: M, response?: GetEmbeddingsHandlerResponseType) => Promise<void> | void;
    onGetEmbeddingsComplete?: (metadata?: M, response?: GetEmbeddingsHandlerResponseType) => Promise<void> | void;
    onGetEmbeddingsError?: (metadata?: M, error?: GatewayError | HttpRequestError) => Promise<void> | void;
};

declare function handleGetEmbeddings(request: GetEmbeddingsHandlerRequestType, client: HttpClient, telemetryContext?: Context): Promise<GetEmbeddingsHandlerResponseType>;

declare const GetToolResponsesHandlerRequest: z.ZodObject<{
    messages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
        content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"image">;
            detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
                mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"pdf">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
            }, {
                type: "base64";
                base64: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            file: z.ZodObject<{
                name: z.ZodString;
                id: z.ZodString;
                size: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                id: string;
                size?: number | undefined;
            }, {
                name: string;
                id: string;
                size?: number | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-call">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            arguments: z.ZodString;
            serverName: z.ZodOptional<z.ZodString>;
            thoughtSignature: z.ZodOptional<z.ZodString>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-response">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            data: z.ZodString;
            apiResponse: z.ZodOptional<z.ZodObject<{
                statusCode: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                statusCode: number;
            }, {
                statusCode: number;
            }>>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodString;
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking: string;
                signature: string;
            }, {
                type: "thinking";
                thinking: string;
                signature: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"error">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"safety">;
                value: z.ZodObject<{
                    category: z.ZodString;
                    probability: z.ZodString;
                    blocked: z.ZodBoolean;
                    message: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }>, z.ZodObject<{
                type: z.ZodLiteral<"response_error">;
                value: z.ZodObject<{
                    code: z.ZodString;
                    message: z.ZodString;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"search-result">;
            value: z.ZodObject<{
                type: z.ZodOptional<z.ZodString>;
                query: z.ZodString;
                responses: z.ZodArray<z.ZodObject<{
                    source: z.ZodString;
                    url: z.ZodString;
                    title: z.ZodString;
                    snippet: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }>, "many">;
                references: z.ZodArray<z.ZodObject<{
                    text: z.ZodString;
                    responseIndices: z.ZodArray<z.ZodNumber, "many">;
                    startIndex: z.ZodOptional<z.ZodNumber>;
                    endIndex: z.ZodOptional<z.ZodNumber>;
                    confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                }, "strip", z.ZodTypeAny, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }>]>, "many">;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }>, "many">;
    tools: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
        type: z.ZodEnum<["function"]>;
        definition: z.ZodObject<{
            schema: z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
                parameters: z.ZodAny;
                strict: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }>;
        }, "strip", z.ZodTypeAny, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }>;
        request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"http">;
            method: z.ZodEnum<["get", "post"]>;
            url: z.ZodString;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            proxyUrl: z.ZodOptional<z.ZodString>;
            proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxAttempts: z.ZodNumber;
                initialDelay: z.ZodNumber;
                exponentialFactor: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }>>;
        }, "strip", z.ZodTypeAny, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }>]>>;
    }, {
        metadata: z.ZodTypeAny;
    }>, "strip", z.ZodTypeAny, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }>]>, "many">;
    customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    callbacks: z.ZodOptional<z.ZodArray<z.ZodType<GetToolResponsesCallbackType<any>, z.ZodTypeDef, GetToolResponsesCallbackType<any>>, "atleastone">>;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    abortSignal: z.ZodOptional<z.ZodType<AbortSignal, z.ZodTypeDef, AbortSignal>>;
}, "strip", z.ZodTypeAny, {
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    tools: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[];
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [GetToolResponsesCallbackType<any>, ...GetToolResponsesCallbackType<any>[]] | undefined;
    abortSignal?: AbortSignal | undefined;
}, {
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    tools: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[];
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [GetToolResponsesCallbackType<any>, ...GetToolResponsesCallbackType<any>[]] | undefined;
    abortSignal?: AbortSignal | undefined;
}>;
type GetToolResponsesHandlerRequestType = z.infer<typeof GetToolResponsesHandlerRequest>;
declare const GetToolResponsesHandlerResponse: z.ZodObject<{
    toolResponses: z.ZodRecord<z.ZodString, z.ZodObject<{
        modality: z.ZodLiteral<"tool-response">;
        index: z.ZodNumber;
        id: z.ZodString;
        name: z.ZodString;
        data: z.ZodString;
        apiResponse: z.ZodOptional<z.ZodObject<{
            statusCode: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            statusCode: number;
        }, {
            statusCode: number;
        }>>;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        data: string;
        id: string;
        name: string;
        modality: "tool-response";
        index: number;
        metadata?: undefined;
        apiResponse?: {
            statusCode: number;
        } | undefined;
    }, {
        data: string;
        id: string;
        name: string;
        modality: "tool-response";
        index: number;
        metadata?: undefined;
        apiResponse?: {
            statusCode: number;
        } | undefined;
    }>>;
    cached: z.ZodBoolean;
    latencyInMs: z.ZodNumber;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
    cached: boolean;
    latencyInMs: number;
    toolResponses: Record<string, {
        data: string;
        id: string;
        name: string;
        modality: "tool-response";
        index: number;
        metadata?: undefined;
        apiResponse?: {
            statusCode: number;
        } | undefined;
    }>;
    metadataForCallbacks?: any;
}, {
    cached: boolean;
    latencyInMs: number;
    toolResponses: Record<string, {
        data: string;
        id: string;
        name: string;
        modality: "tool-response";
        index: number;
        metadata?: undefined;
        apiResponse?: {
            statusCode: number;
        } | undefined;
    }>;
    metadataForCallbacks?: any;
}>;
type GetToolResponsesHandlerResponseType = z.infer<typeof GetToolResponsesHandlerResponse>;
type GetToolResponsesCallbackType<M = any> = {
    onGetToolResponseStart?: (toolCall: ToolCallContentType, metadata?: M) => Promise<void> | void;
    onGetToolResponseCached?: (toolCall: ToolCallContentType, toolResponse: ToolResponseContentType, metadata?: M) => Promise<void> | void;
    onGetToolResponseComplete?: (toolCall: ToolCallContentType, toolResponse: ToolResponseContentType, metadata?: M) => Promise<void> | void;
    onGetToolResponseError?: (toolCall: ToolCallContentType, toolResponse: ToolResponseContentType, error?: GatewayError, metadata?: M) => Promise<void> | void;
};

declare function handleGetToolResponses(request: GetToolResponsesHandlerRequestType, client: HttpClient, telemetryContext?: Context): Promise<GetToolResponsesHandlerResponseType>;

declare const ProxyCompleteChatHandlerRequest: z.ZodObject<{
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    data: z.ZodAny;
    headers: z.ZodRecord<z.ZodString, z.ZodString>;
    query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}>;
type ProxyCompleteChatHandlerRequestType = z.infer<typeof ProxyCompleteChatHandlerRequest>;
declare const ProxyCompleteChatHandlerResponse: z.ZodObject<{
    request: z.ZodAny;
    providerRequest: z.ZodObject<{
        url: z.ZodString;
        headers: z.ZodRecord<z.ZodString, z.ZodString>;
        data: z.ZodAny;
    }, "strip", z.ZodTypeAny, {
        headers: Record<string, string>;
        url: string;
        data?: any;
    }, {
        headers: Record<string, string>;
        url: string;
        data?: any;
    }>;
    providerResponse: z.ZodAny;
    transformedResponse: z.ZodOptional<z.ZodObject<{
        messages: z.ZodArray<z.ZodObject<{
            role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
            content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
                modality: z.ZodLiteral<"text">;
                value: z.ZodString;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"image">;
                detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                    mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"pdf">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                }, {
                    type: "base64";
                    base64: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                file: z.ZodObject<{
                    name: z.ZodString;
                    id: z.ZodString;
                    size: z.ZodOptional<z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-call">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                arguments: z.ZodString;
                serverName: z.ZodOptional<z.ZodString>;
                thoughtSignature: z.ZodOptional<z.ZodString>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }, {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-response">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                data: z.ZodString;
                apiResponse: z.ZodOptional<z.ZodObject<{
                    statusCode: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    statusCode: number;
                }, {
                    statusCode: number;
                }>>;
                metadata: z.ZodTypeAny;
            }, "strip", z.ZodTypeAny, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"reasoning">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"thinking">;
                    thinking: z.ZodString;
                    signature: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"redacted">;
                    data: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "redacted";
                    data: string;
                }, {
                    type: "redacted";
                    data: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"error">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"safety">;
                    value: z.ZodObject<{
                        category: z.ZodString;
                        probability: z.ZodString;
                        blocked: z.ZodBoolean;
                        message: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"response_error">;
                    value: z.ZodObject<{
                        code: z.ZodString;
                        message: z.ZodString;
                        provider: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"search-result">;
                value: z.ZodObject<{
                    type: z.ZodOptional<z.ZodString>;
                    query: z.ZodString;
                    responses: z.ZodArray<z.ZodObject<{
                        source: z.ZodString;
                        url: z.ZodString;
                        title: z.ZodString;
                        snippet: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }>, "many">;
                    references: z.ZodArray<z.ZodObject<{
                        text: z.ZodString;
                        responseIndices: z.ZodArray<z.ZodNumber, "many">;
                        startIndex: z.ZodOptional<z.ZodNumber>;
                        endIndex: z.ZodOptional<z.ZodNumber>;
                        confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                    }, "strip", z.ZodTypeAny, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }>]>, "many">;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            promptTokens: z.ZodNumber;
            completionTokens: z.ZodNumber;
            totalTokens: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        }, {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        }>>;
        logProbs: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
            token: z.ZodString;
            logProb: z.ZodNumber;
            bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
        }, {
            topLogProbs: z.ZodArray<z.ZodObject<{
                token: z.ZodString;
                logProb: z.ZodNumber;
                bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
            }, "strip", z.ZodTypeAny, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }>, "many">;
        }>, "strip", z.ZodTypeAny, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }, {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    providerRequest: {
        headers: Record<string, string>;
        url: string;
        data?: any;
    };
    request?: any;
    providerResponse?: any;
    transformedResponse?: {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    } | undefined;
}, {
    providerRequest: {
        headers: Record<string, string>;
        url: string;
        data?: any;
    };
    request?: any;
    providerResponse?: any;
    transformedResponse?: {
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                modality: "tool-call";
                name: string;
                id: string;
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens: number;
            completionTokens: number;
            totalTokens: number;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    } | undefined;
}>;
type ProxyCompleteChatHandlerResponseType = z.infer<typeof ProxyCompleteChatHandlerResponse>;

declare function handleProxyCompleteChat(request: ProxyCompleteChatHandlerRequestType, client: HttpClient, telemetryContext?: Context): Promise<ProxyCompleteChatHandlerResponseType>;

declare const ProxyGetEmbeddingsHandlerRequest: z.ZodObject<{
    model: z.ZodType<EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>, z.ZodTypeDef, EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>>;
    data: z.ZodAny;
    headers: z.ZodRecord<z.ZodString, z.ZodString>;
    query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    headers: Record<string, string>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}, {
    headers: Record<string, string>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}>;
type ProxyGetEmbeddingsHandlerRequestType = z.infer<typeof ProxyGetEmbeddingsHandlerRequest>;
declare const ProxyGetEmbeddingsHandlerResponse: z.ZodObject<{
    request: z.ZodAny;
    providerRequest: z.ZodObject<{
        url: z.ZodString;
        headers: z.ZodRecord<z.ZodString, z.ZodString>;
        data: z.ZodAny;
    }, "strip", z.ZodTypeAny, {
        headers: Record<string, string>;
        url: string;
        data?: any;
    }, {
        headers: Record<string, string>;
        url: string;
        data?: any;
    }>;
    providerResponse: z.ZodAny;
    transformedResponse: z.ZodOptional<z.ZodDiscriminatedUnion<"encodingFormat", [z.ZodObject<{
        encodingFormat: z.ZodLiteral<"float">;
        embeddings: z.ZodArray<z.ZodObject<{
            index: z.ZodNumber;
            embedding: z.ZodArray<z.ZodNumber, "many">;
        }, "strip", z.ZodTypeAny, {
            index: number;
            embedding: number[];
        }, {
            index: number;
            embedding: number[];
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            totalTokens: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            totalTokens: number;
        }, {
            totalTokens: number;
        }>>;
    }, "strip", z.ZodTypeAny, {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }, {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }>, z.ZodObject<{
        encodingFormat: z.ZodLiteral<"base64">;
        embeddings: z.ZodArray<z.ZodObject<{
            index: z.ZodNumber;
            embedding: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            index: number;
            embedding: string;
        }, {
            index: number;
            embedding: string;
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            totalTokens: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            totalTokens: number;
        }, {
            totalTokens: number;
        }>>;
    }, "strip", z.ZodTypeAny, {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }, {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    }>]>>;
}, "strip", z.ZodTypeAny, {
    providerRequest: {
        headers: Record<string, string>;
        url: string;
        data?: any;
    };
    request?: any;
    providerResponse?: any;
    transformedResponse?: {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    } | {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    } | undefined;
}, {
    providerRequest: {
        headers: Record<string, string>;
        url: string;
        data?: any;
    };
    request?: any;
    providerResponse?: any;
    transformedResponse?: {
        encodingFormat: "float";
        embeddings: {
            index: number;
            embedding: number[];
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    } | {
        encodingFormat: "base64";
        embeddings: {
            index: number;
            embedding: string;
        }[];
        usage?: {
            totalTokens: number;
        } | undefined;
    } | undefined;
}>;
type ProxyGetEmbeddingsHandlerResponseType = z.infer<typeof ProxyGetEmbeddingsHandlerResponse>;

declare function handleProxyGetEmbeddings(request: ProxyGetEmbeddingsHandlerRequestType, client: HttpClient, telemetryContext?: Context): Promise<ProxyGetEmbeddingsHandlerResponseType>;

declare const ProxyStreamChatHandlerRequest: z.ZodObject<{
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    data: z.ZodAny;
    headers: z.ZodRecord<z.ZodString, z.ZodString>;
    query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}>;
type ProxyStreamChatHandlerRequestType = z.infer<typeof ProxyStreamChatHandlerRequest>;
declare const ProxyStreamChatHandlerResponse: z.ZodObject<{
    request: z.ZodAny;
    providerRequest: z.ZodObject<{
        url: z.ZodString;
        headers: z.ZodRecord<z.ZodString, z.ZodString>;
        data: z.ZodAny;
    }, "strip", z.ZodTypeAny, {
        headers: Record<string, string>;
        url: string;
        data?: any;
    }, {
        headers: Record<string, string>;
        url: string;
        data?: any;
    }>;
    providerResponse: z.ZodAny;
    transformedResponse: z.ZodOptional<z.ZodArray<z.ZodObject<{
        partialMessages: z.ZodArray<z.ZodObject<{
            role: z.ZodEnum<["assistant"]>;
            partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
                modality: z.ZodLiteral<"partial-text">;
                value: z.ZodString;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            }, {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-tool-call">;
                index: z.ZodNumber;
                id: z.ZodOptional<z.ZodString>;
                name: z.ZodOptional<z.ZodString>;
                arguments: z.ZodOptional<z.ZodString>;
                serverName: z.ZodOptional<z.ZodString>;
                thoughtSignature: z.ZodOptional<z.ZodString>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }, {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-reasoning">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"thinking">;
                    thinking: z.ZodOptional<z.ZodString>;
                    signature: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                }, {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"redacted">;
                    data: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "redacted";
                    data: string;
                }, {
                    type: "redacted";
                    data: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            }, {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-tool-response">;
                index: z.ZodNumber;
                id: z.ZodOptional<z.ZodString>;
                name: z.ZodOptional<z.ZodString>;
                data: z.ZodOptional<z.ZodString>;
                apiResponse: z.ZodOptional<z.ZodObject<{
                    statusCode: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    statusCode: number;
                }, {
                    statusCode: number;
                }>>;
                metadata: z.ZodTypeAny;
            }, "strip", z.ZodTypeAny, {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }, {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-error">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"safety">;
                    category: z.ZodOptional<z.ZodString>;
                    probability: z.ZodOptional<z.ZodString>;
                    blocked: z.ZodOptional<z.ZodBoolean>;
                    message: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                }, {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"response_error">;
                    code: z.ZodOptional<z.ZodString>;
                    message: z.ZodOptional<z.ZodString>;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                }, {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            }, {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-search-result">;
                value: z.ZodObject<{
                    type: z.ZodOptional<z.ZodString>;
                    query: z.ZodOptional<z.ZodString>;
                    responses: z.ZodOptional<z.ZodArray<z.ZodObject<{
                        source: z.ZodOptional<z.ZodString>;
                        url: z.ZodOptional<z.ZodString>;
                        title: z.ZodOptional<z.ZodString>;
                        snippet: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }, {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }>, "many">>;
                    references: z.ZodOptional<z.ZodArray<z.ZodObject<{
                        text: z.ZodOptional<z.ZodString>;
                        responseIndices: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                        startIndex: z.ZodOptional<z.ZodNumber>;
                        endIndex: z.ZodOptional<z.ZodNumber>;
                        confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                    }, "strip", z.ZodTypeAny, {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }, {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }>, "many">>;
                }, "strip", z.ZodTypeAny, {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                }, {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            }, {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }, {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            promptTokens: z.ZodOptional<z.ZodNumber>;
            completionTokens: z.ZodOptional<z.ZodNumber>;
            totalTokens: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        }, {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        }>>;
        logProbs: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
            token: z.ZodString;
            logProb: z.ZodNumber;
            bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
        }, {
            topLogProbs: z.ZodArray<z.ZodObject<{
                token: z.ZodString;
                logProb: z.ZodNumber;
                bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
            }, "strip", z.ZodTypeAny, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }>, "many">;
        }>, "strip", z.ZodTypeAny, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }, {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    providerRequest: {
        headers: Record<string, string>;
        url: string;
        data?: any;
    };
    request?: any;
    providerResponse?: any;
    transformedResponse?: {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }[] | undefined;
}, {
    providerRequest: {
        headers: Record<string, string>;
        url: string;
        data?: any;
    };
    request?: any;
    providerResponse?: any;
    transformedResponse?: {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }[] | undefined;
}>;
type ProxyStreamChatHandlerResponseType = z.infer<typeof ProxyStreamChatHandlerResponse>;

declare function handleProxyStreamChat(request: ProxyStreamChatHandlerRequestType, client: HttpClient, telemetryContext?: Context): AsyncGenerator<ProxyStreamChatHandlerResponseType, void, unknown>;

declare const StreamChatHandlerRequest: z.ZodObject<{
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    config: z.ZodRecord<z.ZodString, z.ZodAny>;
    messages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
        content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"image">;
            detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
                mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"pdf">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
            }, {
                type: "base64";
                base64: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            file: z.ZodObject<{
                name: z.ZodString;
                id: z.ZodString;
                size: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                id: string;
                size?: number | undefined;
            }, {
                name: string;
                id: string;
                size?: number | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-call">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            arguments: z.ZodString;
            serverName: z.ZodOptional<z.ZodString>;
            thoughtSignature: z.ZodOptional<z.ZodString>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-response">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            data: z.ZodString;
            apiResponse: z.ZodOptional<z.ZodObject<{
                statusCode: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                statusCode: number;
            }, {
                statusCode: number;
            }>>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodString;
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking: string;
                signature: string;
            }, {
                type: "thinking";
                thinking: string;
                signature: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"error">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"safety">;
                value: z.ZodObject<{
                    category: z.ZodString;
                    probability: z.ZodString;
                    blocked: z.ZodBoolean;
                    message: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }>, z.ZodObject<{
                type: z.ZodLiteral<"response_error">;
                value: z.ZodObject<{
                    code: z.ZodString;
                    message: z.ZodString;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"search-result">;
            value: z.ZodObject<{
                type: z.ZodOptional<z.ZodString>;
                query: z.ZodString;
                responses: z.ZodArray<z.ZodObject<{
                    source: z.ZodString;
                    url: z.ZodString;
                    title: z.ZodString;
                    snippet: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }>, "many">;
                references: z.ZodArray<z.ZodObject<{
                    text: z.ZodString;
                    responseIndices: z.ZodArray<z.ZodNumber, "many">;
                    startIndex: z.ZodOptional<z.ZodNumber>;
                    endIndex: z.ZodOptional<z.ZodNumber>;
                    confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                }, "strip", z.ZodTypeAny, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }>]>, "many">;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }>, "many">;
    tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
        type: z.ZodEnum<["function"]>;
        definition: z.ZodObject<{
            schema: z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
                parameters: z.ZodAny;
                strict: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }>;
        }, "strip", z.ZodTypeAny, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }>;
        request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"http">;
            method: z.ZodEnum<["get", "post"]>;
            url: z.ZodString;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            proxyUrl: z.ZodOptional<z.ZodString>;
            proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxAttempts: z.ZodNumber;
                initialDelay: z.ZodNumber;
                exponentialFactor: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }>>;
        }, "strip", z.ZodTypeAny, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }>]>>;
    }, {
        metadata: z.ZodTypeAny;
    }>, "strip", z.ZodTypeAny, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }>]>, "many">>;
    customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    callbacks: z.ZodOptional<z.ZodArray<z.ZodType<StreamChatCallbackType<any>, z.ZodTypeDef, StreamChatCallbackType<any>>, "atleastone">>;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    abortSignal: z.ZodOptional<z.ZodType<AbortSignal, z.ZodTypeDef, AbortSignal>>;
}, "strip", z.ZodTypeAny, {
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [StreamChatCallbackType<any>, ...StreamChatCallbackType<any>[]] | undefined;
    abortSignal?: AbortSignal | undefined;
}, {
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
    customHeaders?: Record<string, string> | undefined;
    metadataForCallbacks?: any;
    callbacks?: [StreamChatCallbackType<any>, ...StreamChatCallbackType<any>[]] | undefined;
    abortSignal?: AbortSignal | undefined;
}>;
type StreamChatHandlerRequestType = z.infer<typeof StreamChatHandlerRequest>;
declare const StreamChatHandlerResponse: z.ZodObject<{
    request: z.ZodObject<{
        config: z.ZodRecord<z.ZodString, z.ZodAny>;
        messages: z.ZodArray<z.ZodObject<{
            role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
            content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
                modality: z.ZodLiteral<"text">;
                value: z.ZodString;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }, {
                value: string;
                modality: "text";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"image">;
                detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                    mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }, {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"pdf">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"base64">;
                    base64: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "base64";
                    base64: string;
                }, {
                    type: "base64";
                    base64: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"url">;
                    url: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "url";
                    url: string;
                }, {
                    type: "url";
                    url: string;
                }>]>;
                file: z.ZodObject<{
                    name: z.ZodString;
                    id: z.ZodString;
                    size: z.ZodOptional<z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }, {
                    name: string;
                    id: string;
                    size?: number | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }, {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-call">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                arguments: z.ZodString;
                serverName: z.ZodOptional<z.ZodString>;
                thoughtSignature: z.ZodOptional<z.ZodString>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }, {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"tool-response">;
                index: z.ZodNumber;
                id: z.ZodString;
                name: z.ZodString;
                data: z.ZodString;
                apiResponse: z.ZodOptional<z.ZodObject<{
                    statusCode: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    statusCode: number;
                }, {
                    statusCode: number;
                }>>;
                metadata: z.ZodTypeAny;
            }, "strip", z.ZodTypeAny, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }, {
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"reasoning">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"thinking">;
                    thinking: z.ZodString;
                    signature: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }, {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"redacted">;
                    data: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "redacted";
                    data: string;
                }, {
                    type: "redacted";
                    data: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }, {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"error">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"safety">;
                    value: z.ZodObject<{
                        category: z.ZodString;
                        probability: z.ZodString;
                        blocked: z.ZodBoolean;
                        message: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }, {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }, {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"response_error">;
                    value: z.ZodObject<{
                        code: z.ZodString;
                        message: z.ZodString;
                        provider: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }, {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }, {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }, {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"search-result">;
                value: z.ZodObject<{
                    type: z.ZodOptional<z.ZodString>;
                    query: z.ZodString;
                    responses: z.ZodArray<z.ZodObject<{
                        source: z.ZodString;
                        url: z.ZodString;
                        title: z.ZodString;
                        snippet: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }, {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }>, "many">;
                    references: z.ZodArray<z.ZodObject<{
                        text: z.ZodString;
                        responseIndices: z.ZodArray<z.ZodNumber, "many">;
                        startIndex: z.ZodOptional<z.ZodNumber>;
                        endIndex: z.ZodOptional<z.ZodNumber>;
                        confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                    }, "strip", z.ZodTypeAny, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }, {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }, {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }, {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            }>]>, "many">;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }, {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }>, "many">;
        tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
            type: z.ZodEnum<["function"]>;
            definition: z.ZodObject<{
                schema: z.ZodObject<{
                    name: z.ZodString;
                    description: z.ZodString;
                    parameters: z.ZodAny;
                    strict: z.ZodOptional<z.ZodBoolean>;
                }, "strip", z.ZodTypeAny, {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                }, {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                }>;
            }, "strip", z.ZodTypeAny, {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            }, {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            }>;
            request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"http">;
                method: z.ZodEnum<["get", "post"]>;
                url: z.ZodString;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                proxyUrl: z.ZodOptional<z.ZodString>;
                proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                retry: z.ZodOptional<z.ZodObject<{
                    maxAttempts: z.ZodNumber;
                    initialDelay: z.ZodNumber;
                    exponentialFactor: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                }, {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                }>>;
            }, "strip", z.ZodTypeAny, {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            }, {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            }>]>>;
        }, {
            metadata: z.ZodTypeAny;
        }>, "strip", z.ZodTypeAny, {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }, {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }>]>, "many">>;
    }, "strip", z.ZodTypeAny, {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    }, {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    }>;
    response: z.ZodObject<{
        partialMessages: z.ZodArray<z.ZodObject<{
            role: z.ZodEnum<["assistant"]>;
            partialContent: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
                modality: z.ZodLiteral<"partial-text">;
                value: z.ZodString;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            }, {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-tool-call">;
                index: z.ZodNumber;
                id: z.ZodOptional<z.ZodString>;
                name: z.ZodOptional<z.ZodString>;
                arguments: z.ZodOptional<z.ZodString>;
                serverName: z.ZodOptional<z.ZodString>;
                thoughtSignature: z.ZodOptional<z.ZodString>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }, {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-reasoning">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"thinking">;
                    thinking: z.ZodOptional<z.ZodString>;
                    signature: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                }, {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"redacted">;
                    data: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    type: "redacted";
                    data: string;
                }, {
                    type: "redacted";
                    data: string;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            }, {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-tool-response">;
                index: z.ZodNumber;
                id: z.ZodOptional<z.ZodString>;
                name: z.ZodOptional<z.ZodString>;
                data: z.ZodOptional<z.ZodString>;
                apiResponse: z.ZodOptional<z.ZodObject<{
                    statusCode: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    statusCode: number;
                }, {
                    statusCode: number;
                }>>;
                metadata: z.ZodTypeAny;
            }, "strip", z.ZodTypeAny, {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }, {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-error">;
                value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                    type: z.ZodLiteral<"safety">;
                    category: z.ZodOptional<z.ZodString>;
                    probability: z.ZodOptional<z.ZodString>;
                    blocked: z.ZodOptional<z.ZodBoolean>;
                    message: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                }, {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                }>, z.ZodObject<{
                    type: z.ZodLiteral<"response_error">;
                    code: z.ZodOptional<z.ZodString>;
                    message: z.ZodOptional<z.ZodString>;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                }, {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                }>]>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            }, {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            }>, z.ZodObject<{
                modality: z.ZodLiteral<"partial-search-result">;
                value: z.ZodObject<{
                    type: z.ZodOptional<z.ZodString>;
                    query: z.ZodOptional<z.ZodString>;
                    responses: z.ZodOptional<z.ZodArray<z.ZodObject<{
                        source: z.ZodOptional<z.ZodString>;
                        url: z.ZodOptional<z.ZodString>;
                        title: z.ZodOptional<z.ZodString>;
                        snippet: z.ZodOptional<z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }, {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }>, "many">>;
                    references: z.ZodOptional<z.ZodArray<z.ZodObject<{
                        text: z.ZodOptional<z.ZodString>;
                        responseIndices: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                        startIndex: z.ZodOptional<z.ZodNumber>;
                        endIndex: z.ZodOptional<z.ZodNumber>;
                        confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                    }, "strip", z.ZodTypeAny, {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }, {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }>, "many">>;
                }, "strip", z.ZodTypeAny, {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                }, {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                }>;
                metadata: z.ZodUndefined;
            }, "strip", z.ZodTypeAny, {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            }, {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }, {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }>, "many">;
        usage: z.ZodOptional<z.ZodObject<{
            promptTokens: z.ZodOptional<z.ZodNumber>;
            completionTokens: z.ZodOptional<z.ZodNumber>;
            totalTokens: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        }, {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        }>>;
        logProbs: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
            token: z.ZodString;
            logProb: z.ZodNumber;
            bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
        }, {
            topLogProbs: z.ZodArray<z.ZodObject<{
                token: z.ZodString;
                logProb: z.ZodNumber;
                bytes: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
            }, "strip", z.ZodTypeAny, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }, {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }>, "many">;
        }>, "strip", z.ZodTypeAny, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }, {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }, {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    }>;
    metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    provider: z.ZodObject<{
        request: z.ZodAny;
        response: z.ZodAny;
    }, "strip", z.ZodTypeAny, {
        request?: any;
        response?: any;
    }, {
        request?: any;
        response?: any;
    }>;
}, "strip", z.ZodTypeAny, {
    request: {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    };
    response: {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    };
    provider: {
        request?: any;
        response?: any;
    };
    metadataForCallbacks?: any;
}, {
    request: {
        config: Record<string, any>;
        messages: {
            role: "system" | "user" | "assistant" | "tool";
            content: ({
                modality: "tool-response";
                name: string;
                id: string;
                data: string;
                index: number;
                metadata?: any;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    value: {
                        message: string;
                        category: string;
                        probability: string;
                        blocked: boolean;
                    };
                } | {
                    type: "response_error";
                    value: {
                        code: string;
                        message: string;
                        provider?: string | undefined;
                    };
                };
                modality: "error";
                metadata?: undefined;
            } | {
                value: {
                    query: string;
                    responses: {
                        url: string;
                        source: string;
                        title: string;
                        snippet?: string | undefined;
                    }[];
                    references: {
                        text: string;
                        responseIndices: number[];
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[];
                    type?: string | undefined;
                };
                modality: "search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "text";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                    mediaType: "png" | "jpeg" | "webp" | "gif";
                } | {
                    type: "url";
                    url: string;
                };
                modality: "image";
                detail: "low" | "medium" | "high" | "auto";
                metadata?: undefined;
            } | {
                value: {
                    type: "base64";
                    base64: string;
                } | {
                    type: "url";
                    url: string;
                };
                modality: "pdf";
                file: {
                    name: string;
                    id: string;
                    size?: number | undefined;
                };
                metadata?: undefined;
            } | {
                id: string;
                name: string;
                modality: "tool-call";
                index: number;
                arguments: string;
                metadata?: undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "thinking";
                    thinking: string;
                    signature: string;
                } | {
                    type: "redacted";
                    data: string;
                };
                modality: "reasoning";
                metadata?: undefined;
            })[];
            metadata?: undefined;
        }[];
        tools?: {
            type: "function";
            definition: {
                schema: {
                    name: string;
                    description: string;
                    strict?: boolean | undefined;
                    parameters?: any;
                };
            };
            metadata?: any;
            request?: {
                type: "http";
                url: string;
                method: "get" | "post";
                query?: Record<string, string> | undefined;
                headers?: Record<string, string> | undefined;
                body?: Record<string, any> | undefined;
                proxyUrl?: string | undefined;
                proxyHeaders?: Record<string, string> | undefined;
                retry?: {
                    maxAttempts: number;
                    initialDelay: number;
                    exponentialFactor: number;
                } | undefined;
            } | undefined;
        }[] | undefined;
    };
    response: {
        partialMessages: {
            role: "assistant";
            partialContent: {
                modality: "partial-tool-response";
                index: number;
                metadata?: any;
                name?: string | undefined;
                id?: string | undefined;
                data?: string | undefined;
                apiResponse?: {
                    statusCode: number;
                } | undefined;
            } | {
                value: {
                    type: "safety";
                    message?: string | undefined;
                    category?: string | undefined;
                    probability?: string | undefined;
                    blocked?: boolean | undefined;
                } | {
                    type: "response_error";
                    code?: string | undefined;
                    message?: string | undefined;
                    provider?: string | undefined;
                };
                modality: "partial-error";
                metadata?: undefined;
            } | {
                value: {
                    type?: string | undefined;
                    query?: string | undefined;
                    responses?: {
                        url?: string | undefined;
                        source?: string | undefined;
                        title?: string | undefined;
                        snippet?: string | undefined;
                    }[] | undefined;
                    references?: {
                        text?: string | undefined;
                        responseIndices?: number[] | undefined;
                        startIndex?: number | undefined;
                        endIndex?: number | undefined;
                        confidenceScores?: number[] | undefined;
                    }[] | undefined;
                };
                modality: "partial-search-result";
                metadata?: undefined;
            } | {
                value: string;
                modality: "partial-text";
                metadata?: undefined;
            } | {
                modality: "partial-tool-call";
                index: number;
                metadata?: undefined;
                name?: string | undefined;
                id?: string | undefined;
                arguments?: string | undefined;
                serverName?: string | undefined;
                thoughtSignature?: string | undefined;
            } | {
                value: {
                    type: "redacted";
                    data: string;
                } | {
                    type: "thinking";
                    thinking?: string | undefined;
                    signature?: string | undefined;
                };
                modality: "partial-reasoning";
                metadata?: undefined;
            };
            metadata?: undefined;
        }[];
        usage?: {
            promptTokens?: number | undefined;
            completionTokens?: number | undefined;
            totalTokens?: number | undefined;
        } | undefined;
        logProbs?: {
            token: string;
            logProb: number;
            bytes: number[] | null;
            topLogProbs: {
                token: string;
                logProb: number;
                bytes: number[] | null;
            }[];
        }[] | undefined;
    };
    provider: {
        request?: any;
        response?: any;
    };
    metadataForCallbacks?: any;
}>;
type StreamChatHandlerResponseType = z.infer<typeof StreamChatHandlerResponse>;
type StreamChatCallbackType<M = any> = {
    onStreamStart?: (metadata?: M) => Promise<void> | void;
    onStreamFirstResponse?: (metadata?: M, response?: StreamChatHandlerResponseType, chunk?: unknown) => Promise<void> | void;
    onStreamNewResponse?: (metadata?: M, response?: StreamChatHandlerResponseType, chunk?: unknown) => Promise<void> | void;
    onStreamEnd?: (metadata?: M, response?: StreamChatHandlerResponseType) => Promise<void> | void;
    onStreamError?: (metadata?: M, error?: GatewayError | HttpRequestError) => Promise<void> | void;
};

declare function handleStreamChat<M>(request: StreamChatHandlerRequestType, client: HttpClient, telemetryContext?: Context): AsyncGenerator<StreamChatHandlerResponseType, void, unknown>;

declare const GatewayOptions: z.ZodObject<{
    queueOptions: z.ZodOptional<z.ZodLazy<z.ZodObject<{
        maxConcurrentTasks: z.ZodOptional<z.ZodNumber>;
        retryCount: z.ZodOptional<z.ZodNumber>;
        timeout: z.ZodOptional<z.ZodNumber>;
        retry: z.ZodOptional<z.ZodObject<{
            initialDelay: z.ZodNumber;
            exponentialFactor: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            initialDelay: number;
            exponentialFactor: number;
        }, {
            initialDelay: number;
            exponentialFactor: number;
        }>>;
    }, "strip", z.ZodTypeAny, {
        timeout?: number | undefined;
        retry?: {
            initialDelay: number;
            exponentialFactor: number;
        } | undefined;
        maxConcurrentTasks?: number | undefined;
        retryCount?: number | undefined;
    }, {
        timeout?: number | undefined;
        retry?: {
            initialDelay: number;
            exponentialFactor: number;
        } | undefined;
        maxConcurrentTasks?: number | undefined;
        retryCount?: number | undefined;
    }>>>;
    dangerouslyAllowBrowser: z.ZodOptional<z.ZodBoolean>;
    httpClient: z.ZodOptional<z.ZodType<HttpClient, z.ZodTypeDef, HttpClient>>;
    completeChatCache: z.ZodOptional<z.ZodType<Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>, z.ZodTypeDef, Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>>>;
    completeChatCallbacks: z.ZodOptional<z.ZodArray<z.ZodType<CompleteChatCallbackType, z.ZodTypeDef, CompleteChatCallbackType>, "atleastone">>;
    getEmbeddingsCache: z.ZodOptional<z.ZodType<Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>, z.ZodTypeDef, Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }>>>;
    getEmbeddingsCallbacks: z.ZodOptional<z.ZodArray<z.ZodType<GetEmbeddingsCallbackType, z.ZodTypeDef, GetEmbeddingsCallbackType>, "atleastone">>;
    getToolResponsesCache: z.ZodOptional<z.ZodType<Cache<{
        cached: boolean;
        latencyInMs: number;
        toolResponses: Record<string, {
            data: string;
            id: string;
            name: string;
            modality: "tool-response";
            index: number;
            metadata?: undefined;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>;
        metadataForCallbacks?: any;
    }>, z.ZodTypeDef, Cache<{
        cached: boolean;
        latencyInMs: number;
        toolResponses: Record<string, {
            data: string;
            id: string;
            name: string;
            modality: "tool-response";
            index: number;
            metadata?: undefined;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>;
        metadataForCallbacks?: any;
    }>>>;
    getToolResponsesCallbacks: z.ZodOptional<z.ZodArray<z.ZodType<GetToolResponsesCallbackType, z.ZodTypeDef, GetToolResponsesCallbackType>, "atleastone">>;
    streamChatCallbacks: z.ZodOptional<z.ZodArray<z.ZodType<StreamChatCallbackType, z.ZodTypeDef, StreamChatCallbackType>, "atleastone">>;
    logger: z.ZodOptional<z.ZodType<Logger, z.ZodTypeDef, Logger>>;
    telemetry: z.ZodOptional<z.ZodObject<{
        tracer: z.ZodOptional<z.ZodType<Tracer, z.ZodTypeDef, Tracer>>;
        meter: z.ZodOptional<z.ZodType<Meter, z.ZodTypeDef, Meter>>;
    }, "strip", z.ZodTypeAny, {
        tracer?: Tracer | undefined;
        meter?: Meter | undefined;
    }, {
        tracer?: Tracer | undefined;
        meter?: Meter | undefined;
    }>>;
    enableAnalytics: z.ZodOptional<z.ZodBoolean>;
    enableProxyAgent: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    enableProxyAgent?: boolean | undefined;
    queueOptions?: {
        timeout?: number | undefined;
        retry?: {
            initialDelay: number;
            exponentialFactor: number;
        } | undefined;
        maxConcurrentTasks?: number | undefined;
        retryCount?: number | undefined;
    } | undefined;
    dangerouslyAllowBrowser?: boolean | undefined;
    httpClient?: HttpClient | undefined;
    completeChatCache?: Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }> | undefined;
    completeChatCallbacks?: [CompleteChatCallbackType, ...CompleteChatCallbackType[]] | undefined;
    getEmbeddingsCache?: Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }> | undefined;
    getEmbeddingsCallbacks?: [GetEmbeddingsCallbackType, ...GetEmbeddingsCallbackType[]] | undefined;
    getToolResponsesCache?: Cache<{
        cached: boolean;
        latencyInMs: number;
        toolResponses: Record<string, {
            data: string;
            id: string;
            name: string;
            modality: "tool-response";
            index: number;
            metadata?: undefined;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>;
        metadataForCallbacks?: any;
    }> | undefined;
    getToolResponsesCallbacks?: [GetToolResponsesCallbackType, ...GetToolResponsesCallbackType[]] | undefined;
    streamChatCallbacks?: [StreamChatCallbackType, ...StreamChatCallbackType[]] | undefined;
    logger?: Logger | undefined;
    telemetry?: {
        tracer?: Tracer | undefined;
        meter?: Meter | undefined;
    } | undefined;
    enableAnalytics?: boolean | undefined;
}, {
    enableProxyAgent?: boolean | undefined;
    queueOptions?: {
        timeout?: number | undefined;
        retry?: {
            initialDelay: number;
            exponentialFactor: number;
        } | undefined;
        maxConcurrentTasks?: number | undefined;
        retryCount?: number | undefined;
    } | undefined;
    dangerouslyAllowBrowser?: boolean | undefined;
    httpClient?: HttpClient | undefined;
    completeChatCache?: Cache<{
        request: {
            config: Record<string, any>;
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    id: string;
                    name: string;
                    modality: "tool-call";
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            tools?: {
                type: "function";
                definition: {
                    schema: {
                        name: string;
                        description: string;
                        strict?: boolean | undefined;
                        parameters?: any;
                    };
                };
                metadata?: any;
                request?: {
                    type: "http";
                    url: string;
                    method: "get" | "post";
                    query?: Record<string, string> | undefined;
                    headers?: Record<string, string> | undefined;
                    body?: Record<string, any> | undefined;
                    proxyUrl?: string | undefined;
                    proxyHeaders?: Record<string, string> | undefined;
                    retry?: {
                        maxAttempts: number;
                        initialDelay: number;
                        exponentialFactor: number;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        };
        response: {
            messages: {
                role: "system" | "user" | "assistant" | "tool";
                content: ({
                    modality: "tool-response";
                    name: string;
                    id: string;
                    data: string;
                    index: number;
                    metadata?: any;
                    apiResponse?: {
                        statusCode: number;
                    } | undefined;
                } | {
                    value: {
                        type: "safety";
                        value: {
                            message: string;
                            category: string;
                            probability: string;
                            blocked: boolean;
                        };
                    } | {
                        type: "response_error";
                        value: {
                            code: string;
                            message: string;
                            provider?: string | undefined;
                        };
                    };
                    modality: "error";
                    metadata?: undefined;
                } | {
                    value: {
                        query: string;
                        responses: {
                            url: string;
                            source: string;
                            title: string;
                            snippet?: string | undefined;
                        }[];
                        references: {
                            text: string;
                            responseIndices: number[];
                            startIndex?: number | undefined;
                            endIndex?: number | undefined;
                            confidenceScores?: number[] | undefined;
                        }[];
                        type?: string | undefined;
                    };
                    modality: "search-result";
                    metadata?: undefined;
                } | {
                    value: string;
                    modality: "text";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                        mediaType: "png" | "jpeg" | "webp" | "gif";
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "image";
                    detail: "low" | "medium" | "high" | "auto";
                    metadata?: undefined;
                } | {
                    value: {
                        type: "base64";
                        base64: string;
                    } | {
                        type: "url";
                        url: string;
                    };
                    modality: "pdf";
                    file: {
                        name: string;
                        id: string;
                        size?: number | undefined;
                    };
                    metadata?: undefined;
                } | {
                    modality: "tool-call";
                    name: string;
                    id: string;
                    index: number;
                    arguments: string;
                    metadata?: undefined;
                    serverName?: string | undefined;
                    thoughtSignature?: string | undefined;
                } | {
                    value: {
                        type: "thinking";
                        thinking: string;
                        signature: string;
                    } | {
                        type: "redacted";
                        data: string;
                    };
                    modality: "reasoning";
                    metadata?: undefined;
                })[];
                metadata?: undefined;
            }[];
            usage?: {
                promptTokens: number;
                completionTokens: number;
                totalTokens: number;
            } | undefined;
            logProbs?: {
                token: string;
                logProb: number;
                bytes: number[] | null;
                topLogProbs: {
                    token: string;
                    logProb: number;
                    bytes: number[] | null;
                }[];
            }[] | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }> | undefined;
    completeChatCallbacks?: [CompleteChatCallbackType, ...CompleteChatCallbackType[]] | undefined;
    getEmbeddingsCache?: Cache<{
        request: {
            config: Record<string, any>;
            embeddingRequests: {
                modality: "text";
                requests: string[];
                metadata?: undefined;
            } | {
                modality: "token";
                requests: number[][];
                metadata?: undefined;
            };
        };
        response: {
            encodingFormat: "float";
            embeddings: {
                index: number;
                embedding: number[];
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        } | {
            encodingFormat: "base64";
            embeddings: {
                index: number;
                embedding: string;
            }[];
            usage?: {
                totalTokens: number;
            } | undefined;
        };
        cached: boolean;
        latencyInMs: number;
        provider: {
            request?: any;
            response?: any;
        };
        metadataForCallbacks?: any;
    }> | undefined;
    getEmbeddingsCallbacks?: [GetEmbeddingsCallbackType, ...GetEmbeddingsCallbackType[]] | undefined;
    getToolResponsesCache?: Cache<{
        cached: boolean;
        latencyInMs: number;
        toolResponses: Record<string, {
            data: string;
            id: string;
            name: string;
            modality: "tool-response";
            index: number;
            metadata?: undefined;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>;
        metadataForCallbacks?: any;
    }> | undefined;
    getToolResponsesCallbacks?: [GetToolResponsesCallbackType, ...GetToolResponsesCallbackType[]] | undefined;
    streamChatCallbacks?: [StreamChatCallbackType, ...StreamChatCallbackType[]] | undefined;
    logger?: Logger | undefined;
    telemetry?: {
        tracer?: Tracer | undefined;
        meter?: Meter | undefined;
    } | undefined;
    enableAnalytics?: boolean | undefined;
}>;
type GatewayOptionsType = z.infer<typeof GatewayOptions>;
declare const GatewayCompleteChatRequest: z.ZodObject<{
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    config: z.ZodRecord<z.ZodString, z.ZodAny>;
    messages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
        content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"image">;
            detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
                mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"pdf">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
            }, {
                type: "base64";
                base64: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            file: z.ZodObject<{
                name: z.ZodString;
                id: z.ZodString;
                size: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                id: string;
                size?: number | undefined;
            }, {
                name: string;
                id: string;
                size?: number | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-call">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            arguments: z.ZodString;
            serverName: z.ZodOptional<z.ZodString>;
            thoughtSignature: z.ZodOptional<z.ZodString>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-response">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            data: z.ZodString;
            apiResponse: z.ZodOptional<z.ZodObject<{
                statusCode: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                statusCode: number;
            }, {
                statusCode: number;
            }>>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodString;
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking: string;
                signature: string;
            }, {
                type: "thinking";
                thinking: string;
                signature: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"error">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"safety">;
                value: z.ZodObject<{
                    category: z.ZodString;
                    probability: z.ZodString;
                    blocked: z.ZodBoolean;
                    message: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }>, z.ZodObject<{
                type: z.ZodLiteral<"response_error">;
                value: z.ZodObject<{
                    code: z.ZodString;
                    message: z.ZodString;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"search-result">;
            value: z.ZodObject<{
                type: z.ZodOptional<z.ZodString>;
                query: z.ZodString;
                responses: z.ZodArray<z.ZodObject<{
                    source: z.ZodString;
                    url: z.ZodString;
                    title: z.ZodString;
                    snippet: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }>, "many">;
                references: z.ZodArray<z.ZodObject<{
                    text: z.ZodString;
                    responseIndices: z.ZodArray<z.ZodNumber, "many">;
                    startIndex: z.ZodOptional<z.ZodNumber>;
                    endIndex: z.ZodOptional<z.ZodNumber>;
                    confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                }, "strip", z.ZodTypeAny, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }>]>, "many">;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }>, "many">;
    tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
        type: z.ZodEnum<["function"]>;
        definition: z.ZodObject<{
            schema: z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
                parameters: z.ZodAny;
                strict: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }>;
        }, "strip", z.ZodTypeAny, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }>;
        request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"http">;
            method: z.ZodEnum<["get", "post"]>;
            url: z.ZodString;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            proxyUrl: z.ZodOptional<z.ZodString>;
            proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxAttempts: z.ZodNumber;
                initialDelay: z.ZodNumber;
                exponentialFactor: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }>>;
        }, "strip", z.ZodTypeAny, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }>]>>;
    }, {
        metadata: z.ZodTypeAny;
    }>, "strip", z.ZodTypeAny, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }>]>, "many">>;
    options: z.ZodOptional<z.ZodObject<{
        enableCache: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    }, "strip", z.ZodTypeAny, {
        enableCache: boolean;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }, {
        enableCache?: boolean | undefined;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }>>;
}, "strip", z.ZodTypeAny, {
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    options?: {
        enableCache: boolean;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
}, {
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    options?: {
        enableCache?: boolean | undefined;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
}>;
type GatewayCompleteChatRequestType = z.infer<typeof GatewayCompleteChatRequest>;
declare const GatewayStreamChatRequest: z.ZodObject<{
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    config: z.ZodRecord<z.ZodString, z.ZodAny>;
    messages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
        content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"image">;
            detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
                mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"pdf">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
            }, {
                type: "base64";
                base64: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            file: z.ZodObject<{
                name: z.ZodString;
                id: z.ZodString;
                size: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                id: string;
                size?: number | undefined;
            }, {
                name: string;
                id: string;
                size?: number | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-call">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            arguments: z.ZodString;
            serverName: z.ZodOptional<z.ZodString>;
            thoughtSignature: z.ZodOptional<z.ZodString>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-response">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            data: z.ZodString;
            apiResponse: z.ZodOptional<z.ZodObject<{
                statusCode: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                statusCode: number;
            }, {
                statusCode: number;
            }>>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodString;
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking: string;
                signature: string;
            }, {
                type: "thinking";
                thinking: string;
                signature: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"error">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"safety">;
                value: z.ZodObject<{
                    category: z.ZodString;
                    probability: z.ZodString;
                    blocked: z.ZodBoolean;
                    message: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }>, z.ZodObject<{
                type: z.ZodLiteral<"response_error">;
                value: z.ZodObject<{
                    code: z.ZodString;
                    message: z.ZodString;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"search-result">;
            value: z.ZodObject<{
                type: z.ZodOptional<z.ZodString>;
                query: z.ZodString;
                responses: z.ZodArray<z.ZodObject<{
                    source: z.ZodString;
                    url: z.ZodString;
                    title: z.ZodString;
                    snippet: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }>, "many">;
                references: z.ZodArray<z.ZodObject<{
                    text: z.ZodString;
                    responseIndices: z.ZodArray<z.ZodNumber, "many">;
                    startIndex: z.ZodOptional<z.ZodNumber>;
                    endIndex: z.ZodOptional<z.ZodNumber>;
                    confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                }, "strip", z.ZodTypeAny, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }>]>, "many">;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }>, "many">;
    tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
        type: z.ZodEnum<["function"]>;
        definition: z.ZodObject<{
            schema: z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
                parameters: z.ZodAny;
                strict: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }>;
        }, "strip", z.ZodTypeAny, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }>;
        request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"http">;
            method: z.ZodEnum<["get", "post"]>;
            url: z.ZodString;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            proxyUrl: z.ZodOptional<z.ZodString>;
            proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxAttempts: z.ZodNumber;
                initialDelay: z.ZodNumber;
                exponentialFactor: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }>>;
        }, "strip", z.ZodTypeAny, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }>]>>;
    }, {
        metadata: z.ZodTypeAny;
    }>, "strip", z.ZodTypeAny, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }>]>, "many">>;
    options: z.ZodOptional<z.ZodObject<{
        customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    }, "strip", z.ZodTypeAny, {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }, {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }>>;
    abortSignal: z.ZodOptional<z.ZodType<AbortSignal, z.ZodTypeDef, AbortSignal>>;
}, "strip", z.ZodTypeAny, {
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    options?: {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
    abortSignal?: AbortSignal | undefined;
}, {
    config: Record<string, any>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    options?: {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
    tools?: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[] | undefined;
    abortSignal?: AbortSignal | undefined;
}>;
type GatewayStreamChatRequestType = z.infer<typeof GatewayStreamChatRequest>;
declare const GatewayGetEmbeddingsRequest: z.ZodObject<{
    model: z.ZodType<EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>, z.ZodTypeDef, EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>>;
    config: z.ZodRecord<z.ZodString, z.ZodAny>;
    embeddingRequests: z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
        modality: z.ZodLiteral<"text">;
        metadata: z.ZodUndefined;
        requests: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    }, {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    }>, z.ZodObject<{
        modality: z.ZodLiteral<"token">;
        metadata: z.ZodUndefined;
        requests: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
    }, "strip", z.ZodTypeAny, {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    }, {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    }>]>;
    options: z.ZodOptional<z.ZodObject<{
        enableCache: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    }, "strip", z.ZodTypeAny, {
        enableCache: boolean;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }, {
        enableCache?: boolean | undefined;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }>>;
}, "strip", z.ZodTypeAny, {
    config: Record<string, any>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    embeddingRequests: {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    } | {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    };
    options?: {
        enableCache: boolean;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
}, {
    config: Record<string, any>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    embeddingRequests: {
        modality: "text";
        requests: string[];
        metadata?: undefined;
    } | {
        modality: "token";
        requests: number[][];
        metadata?: undefined;
    };
    options?: {
        enableCache?: boolean | undefined;
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
}>;
type GatewayGetEmbeddingsRequestType = z.infer<typeof GatewayGetEmbeddingsRequest>;
declare const GatewayProxyCompleteChatRequest: z.ZodObject<{
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    data: z.ZodAny;
    headers: z.ZodRecord<z.ZodString, z.ZodString>;
    query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}>;
type GatewayProxyCompleteChatRequestType = z.infer<typeof GatewayProxyCompleteChatRequest>;
declare const GatewayProxyStreamChatRequest: z.ZodObject<{
    model: z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>;
    data: z.ZodAny;
    headers: z.ZodRecord<z.ZodString, z.ZodString>;
    query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}, {
    headers: Record<string, string>;
    model: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}>;
type GatewayProxyStreamChatRequestType = z.infer<typeof GatewayProxyStreamChatRequest>;
declare const GatewayProxyGetEmbeddingsRequest: z.ZodObject<{
    model: z.ZodType<EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>, z.ZodTypeDef, EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>>;
    data: z.ZodAny;
    headers: z.ZodRecord<z.ZodString, z.ZodString>;
    query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    headers: Record<string, string>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}, {
    headers: Record<string, string>;
    model: EmbeddingModelV1<{
        description: string;
        name: string;
        modalities: ["text" | "token", ...("text" | "token")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
    }>;
    data?: any;
    query?: Record<string, string> | undefined;
}>;
type GatewayProxyGetEmbeddingsRequestType = z.infer<typeof GatewayProxyGetEmbeddingsRequest>;
declare const GatewayGetChatUsageCostRequest: z.ZodEffects<z.ZodObject<{
    chatUsage: z.ZodType<{
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }, z.ZodTypeDef, {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    }>;
    chatModelPrice: z.ZodOptional<z.ZodType<{
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    }, z.ZodTypeDef, {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    }>>;
    model: z.ZodOptional<z.ZodType<ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>, z.ZodTypeDef, ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }>>>;
}, "strip", z.ZodTypeAny, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}>, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}, {
    chatUsage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    model?: ChatModelV1<{
        name: string;
        description: string;
        roles: Partial<Record<"system" | "user" | "assistant" | "tool", string | undefined>>;
        modalities: ["text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result", ...("text" | "error" | "image" | "pdf" | "tool-call" | "tool-response" | "reasoning" | "search-result")[]];
        maxInputTokens: number;
        maxOutputTokens: number;
        config: {
            def: Record<string, {
                type: "multi-string";
                param: string;
                title: string;
                description: string;
                max: number;
            } | {
                type: "object-schema";
                param: string;
                title: string;
                description: string;
                objectSchema?: any;
            } | {
                type: "paired-select";
                param: string;
                title: string;
                description: string;
                fields: [{
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }, {
                    label: string;
                    key: string;
                    choices: {
                        value: string;
                        label: string;
                    }[];
                    description?: string | undefined;
                }];
                uniqueByField?: string | undefined;
            } | {
                type: "range";
                param: string;
                title: string;
                description: string;
                max: number;
                default: number;
                min: number;
                step: number;
            } | {
                type: "select-boolean";
                param: string;
                title: string;
                description: string;
                default: boolean | null;
            } | {
                type: "select-string";
                param: string;
                title: string;
                description: string;
                default: string;
                choices: string[];
            } | {
                type: "string";
                param: string;
                title: string;
                description: string;
                default?: string | undefined;
                minLength?: number | undefined;
                maxLength?: number | undefined;
            }>;
            schema: z.ZodObject<z.ZodRawShape, z.UnknownKeysParam, z.ZodTypeAny, unknown, unknown>;
        };
        price: {
            modelName: string;
            currency: string;
            tokenRanges: {
                minTokens: number;
                prices: {
                    base: {
                        inputPricePerMillion: number;
                        outputPricePerMillion: number;
                    };
                };
                maxTokens?: number | null | undefined;
            }[];
        };
        maxReasoningTokens?: number | undefined;
    }> | undefined;
    chatModelPrice?: {
        modelName: string;
        currency: string;
        tokenRanges: {
            minTokens: number;
            prices: {
                base: {
                    inputPricePerMillion: number;
                    outputPricePerMillion: number;
                };
            };
            maxTokens?: number | null | undefined;
        }[];
    } | undefined;
}>;
type GatewayGetChatUsageCostRequestType = z.infer<typeof GatewayGetChatUsageCostRequest>;
declare const GatewayGetToolResponsesRequest: z.ZodObject<{
    tools: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
        type: z.ZodEnum<["function"]>;
        definition: z.ZodObject<{
            schema: z.ZodObject<{
                name: z.ZodString;
                description: z.ZodString;
                parameters: z.ZodAny;
                strict: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }, {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            }>;
        }, "strip", z.ZodTypeAny, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }, {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        }>;
        request: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"http">;
            method: z.ZodEnum<["get", "post"]>;
            url: z.ZodString;
            headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
            proxyUrl: z.ZodOptional<z.ZodString>;
            proxyHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            retry: z.ZodOptional<z.ZodObject<{
                maxAttempts: z.ZodNumber;
                initialDelay: z.ZodNumber;
                exponentialFactor: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }, {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            }>>;
        }, "strip", z.ZodTypeAny, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }, {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        }>]>>;
    }, {
        metadata: z.ZodTypeAny;
    }>, "strip", z.ZodTypeAny, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }, {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }>]>, "many">;
    messages: z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
        content: z.ZodArray<z.ZodDiscriminatedUnion<"modality", [z.ZodObject<{
            modality: z.ZodLiteral<"text">;
            value: z.ZodString;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }, {
            value: string;
            modality: "text";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"image">;
            detail: z.ZodEnum<["low", "medium", "high", "auto"]>;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
                mediaType: z.ZodEnum<["png", "jpeg", "webp", "gif"]>;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }, {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"pdf">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"base64">;
                base64: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "base64";
                base64: string;
            }, {
                type: "base64";
                base64: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"url">;
                url: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "url";
                url: string;
            }, {
                type: "url";
                url: string;
            }>]>;
            file: z.ZodObject<{
                name: z.ZodString;
                id: z.ZodString;
                size: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                name: string;
                id: string;
                size?: number | undefined;
            }, {
                name: string;
                id: string;
                size?: number | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }, {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-call">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            arguments: z.ZodString;
            serverName: z.ZodOptional<z.ZodString>;
            thoughtSignature: z.ZodOptional<z.ZodString>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }, {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"tool-response">;
            index: z.ZodNumber;
            id: z.ZodString;
            name: z.ZodString;
            data: z.ZodString;
            apiResponse: z.ZodOptional<z.ZodObject<{
                statusCode: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                statusCode: number;
            }, {
                statusCode: number;
            }>>;
            metadata: z.ZodTypeAny;
        }, "strip", z.ZodTypeAny, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }, {
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"reasoning">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"thinking">;
                thinking: z.ZodString;
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "thinking";
                thinking: string;
                signature: string;
            }, {
                type: "thinking";
                thinking: string;
                signature: string;
            }>, z.ZodObject<{
                type: z.ZodLiteral<"redacted">;
                data: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "redacted";
                data: string;
            }, {
                type: "redacted";
                data: string;
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }, {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"error">;
            value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
                type: z.ZodLiteral<"safety">;
                value: z.ZodObject<{
                    category: z.ZodString;
                    probability: z.ZodString;
                    blocked: z.ZodBoolean;
                    message: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }, {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }, {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            }>, z.ZodObject<{
                type: z.ZodLiteral<"response_error">;
                value: z.ZodObject<{
                    code: z.ZodString;
                    message: z.ZodString;
                    provider: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }, {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                }>;
            }, "strip", z.ZodTypeAny, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }, {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            }>]>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }, {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        }>, z.ZodObject<{
            modality: z.ZodLiteral<"search-result">;
            value: z.ZodObject<{
                type: z.ZodOptional<z.ZodString>;
                query: z.ZodString;
                responses: z.ZodArray<z.ZodObject<{
                    source: z.ZodString;
                    url: z.ZodString;
                    title: z.ZodString;
                    snippet: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }, {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }>, "many">;
                references: z.ZodArray<z.ZodObject<{
                    text: z.ZodString;
                    responseIndices: z.ZodArray<z.ZodNumber, "many">;
                    startIndex: z.ZodOptional<z.ZodNumber>;
                    endIndex: z.ZodOptional<z.ZodNumber>;
                    confidenceScores: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
                }, "strip", z.ZodTypeAny, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }, {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }, {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            }>;
            metadata: z.ZodUndefined;
        }, "strip", z.ZodTypeAny, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }, {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        }>]>, "many">;
        metadata: z.ZodUndefined;
    }, "strip", z.ZodTypeAny, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }, {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }>, "many">;
    options: z.ZodOptional<z.ZodObject<{
        customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        metadataForCallbacks: z.ZodOptional<z.ZodAny>;
    }, "strip", z.ZodTypeAny, {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }, {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    }>>;
    abortSignal: z.ZodOptional<z.ZodType<AbortSignal, z.ZodTypeDef, AbortSignal>>;
}, "strip", z.ZodTypeAny, {
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    tools: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[];
    options?: {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
    abortSignal?: AbortSignal | undefined;
}, {
    messages: {
        role: "system" | "user" | "assistant" | "tool";
        content: ({
            modality: "tool-response";
            name: string;
            id: string;
            data: string;
            index: number;
            metadata?: any;
            apiResponse?: {
                statusCode: number;
            } | undefined;
        } | {
            value: {
                type: "safety";
                value: {
                    message: string;
                    category: string;
                    probability: string;
                    blocked: boolean;
                };
            } | {
                type: "response_error";
                value: {
                    code: string;
                    message: string;
                    provider?: string | undefined;
                };
            };
            modality: "error";
            metadata?: undefined;
        } | {
            value: {
                query: string;
                responses: {
                    url: string;
                    source: string;
                    title: string;
                    snippet?: string | undefined;
                }[];
                references: {
                    text: string;
                    responseIndices: number[];
                    startIndex?: number | undefined;
                    endIndex?: number | undefined;
                    confidenceScores?: number[] | undefined;
                }[];
                type?: string | undefined;
            };
            modality: "search-result";
            metadata?: undefined;
        } | {
            value: string;
            modality: "text";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
                mediaType: "png" | "jpeg" | "webp" | "gif";
            } | {
                type: "url";
                url: string;
            };
            modality: "image";
            detail: "low" | "medium" | "high" | "auto";
            metadata?: undefined;
        } | {
            value: {
                type: "base64";
                base64: string;
            } | {
                type: "url";
                url: string;
            };
            modality: "pdf";
            file: {
                name: string;
                id: string;
                size?: number | undefined;
            };
            metadata?: undefined;
        } | {
            id: string;
            name: string;
            modality: "tool-call";
            index: number;
            arguments: string;
            metadata?: undefined;
            serverName?: string | undefined;
            thoughtSignature?: string | undefined;
        } | {
            value: {
                type: "thinking";
                thinking: string;
                signature: string;
            } | {
                type: "redacted";
                data: string;
            };
            modality: "reasoning";
            metadata?: undefined;
        })[];
        metadata?: undefined;
    }[];
    tools: {
        type: "function";
        definition: {
            schema: {
                name: string;
                description: string;
                strict?: boolean | undefined;
                parameters?: any;
            };
        };
        metadata?: any;
        request?: {
            type: "http";
            url: string;
            method: "get" | "post";
            query?: Record<string, string> | undefined;
            headers?: Record<string, string> | undefined;
            body?: Record<string, any> | undefined;
            proxyUrl?: string | undefined;
            proxyHeaders?: Record<string, string> | undefined;
            retry?: {
                maxAttempts: number;
                initialDelay: number;
                exponentialFactor: number;
            } | undefined;
        } | undefined;
    }[];
    options?: {
        customHeaders?: Record<string, string> | undefined;
        metadataForCallbacks?: any;
    } | undefined;
    abortSignal?: AbortSignal | undefined;
}>;
type GatewayGetToolResponsesRequestType = z.infer<typeof GatewayGetToolResponsesRequest>;

declare class Gateway {
    private options;
    private logger?;
    private tracer;
    private meter;
    private analytics;
    private httpClient;
    private queues;
    private caches;
    constructor(options?: GatewayOptionsType);
    completeChat(request: GatewayCompleteChatRequestType): Promise<CompleteChatHandlerResponseType>;
    private executeCompleteChat;
    streamChat(request: GatewayStreamChatRequestType): AsyncGenerator<StreamChatHandlerResponseType, void, unknown>;
    getEmbeddings(request: GatewayGetEmbeddingsRequestType): Promise<GetEmbeddingsHandlerResponseType>;
    private executeGetEmbeddings;
    proxyCompleteChat(request: GatewayProxyCompleteChatRequestType): Promise<ProxyCompleteChatHandlerResponseType>;
    private executeProxyCompleteChat;
    proxyStreamChat(request: GatewayProxyStreamChatRequestType): AsyncGenerator<ProxyStreamChatHandlerResponseType, void, unknown>;
    proxyGetEmbeddings(request: GatewayProxyGetEmbeddingsRequestType): Promise<ProxyGetEmbeddingsHandlerResponseType>;
    private executeProxyGetEmbeddings;
    getToolResponses(request: GatewayGetToolResponsesRequestType): Promise<GetToolResponsesHandlerResponseType>;
    static getChatUsageCost(request: GatewayGetChatUsageCostRequestType): GetChatUsageCostHandlerResponseType;
    static GatewayError: typeof GatewayError;
}

export { type AnalyticsBrowserEnvironment, type AnalyticsEvent, AnalyticsManager, type AnalyticsNodeEnvironment, type AnalyticsRecorder, type Cache, type CompleteChatCallbackType, CompleteChatHandlerRequest, type CompleteChatHandlerRequestType, CompleteChatHandlerResponse, type CompleteChatHandlerResponseType, ConsoleLogger, Gateway, GatewayError, type GatewayOptionsType, GatewayTelemetryError, GetChatUsageCostHandlerRequest, type GetChatUsageCostHandlerRequestType, GetChatUsageCostHandlerResponse, type GetChatUsageCostHandlerResponseType, type GetEmbeddingsCallbackType, GetEmbeddingsHandlerRequest, type GetEmbeddingsHandlerRequestType, GetEmbeddingsHandlerResponse, type GetEmbeddingsHandlerResponseType, type GetToolResponsesCallbackType, GetToolResponsesHandlerRequest, type GetToolResponsesHandlerRequestType, GetToolResponsesHandlerResponse, type GetToolResponsesHandlerResponseType, type HttpClient, HttpClientError, type HttpClientOptions, type HttpClientResponse, HttpRequestError, IsomorphicHttpClient, LRUCache, type Logger, LoggerManager, NoOpAnalytics, PostAnalytics, ProxyCompleteChatHandlerRequest, type ProxyCompleteChatHandlerRequestType, ProxyCompleteChatHandlerResponse, type ProxyCompleteChatHandlerResponseType, ProxyGetEmbeddingsHandlerRequest, type ProxyGetEmbeddingsHandlerRequestType, ProxyGetEmbeddingsHandlerResponse, type ProxyGetEmbeddingsHandlerResponseType, ProxyStreamChatHandlerRequest, type ProxyStreamChatHandlerRequestType, ProxyStreamChatHandlerResponse, type ProxyStreamChatHandlerResponseType, type Queue, QueueOptions, type QueueOptionsType, type QueueTask, QueueTaskTimeoutError, SimpleQueue, type StreamChatCallbackType, StreamChatHandlerRequest, type StreamChatHandlerRequestType, StreamChatHandlerResponse, type StreamChatHandlerResponseType, TelemetryManager, handleCompleteChat, handleGetChatUsageCost, handleGetEmbeddings, handleGetToolResponses, handleProxyCompleteChat, handleProxyGetEmbeddings, handleProxyStreamChat, handleStreamChat };
