import type { ApiEmbeddingProvider, ApiProvider, CallApiContextParams, EnvOverrides, ProviderResponse, ProviderEmbeddingResponse } from '../types.js';
interface VertexCompletionOptions {
    apiKey?: string;
    apiHost?: string;
    projectId?: string;
    region?: string;
    publisher?: string;
    context?: string;
    examples?: {
        input: string;
        output: string;
    }[];
    safetySettings?: {
        category: string;
        probability: string;
    }[];
    stopSequence?: string[];
    temperature?: number;
    maxOutputTokens?: number;
    topP?: number;
    topK?: number;
    generationConfig?: {
        context?: string;
        examples?: {
            input: string;
            output: string;
        }[];
        stopSequence?: string[];
        temperature?: number;
        maxOutputTokens?: number;
        topP?: number;
        topK?: number;
    };
    toolConfig?: {
        functionCallingConfig?: {
            mode?: 'MODE_UNSPECIFIED' | 'AUTO' | 'ANY' | 'NONE';
            allowedFunctionNames?: string[];
        };
    };
    systemInstruction?: Content;
}
interface Content {
    parts: Part[];
    role?: string;
}
interface Part {
    text?: string;
    inlineData?: Blob;
    functionCall?: FunctionCall;
    functionResponse?: FunctionResponse;
    fileData?: FileData;
}
interface Blob {
    mimeType: string;
    data: string;
}
interface FunctionCall {
    name: string;
    args?: {
        [key: string]: any;
    };
}
interface FunctionResponse {
    name: string;
    response: {
        [key: string]: any;
    };
}
interface FileData {
    mimeType?: string;
    fileUri: string;
}
declare class VertexGenericProvider implements ApiProvider {
    modelName: string;
    config: VertexCompletionOptions;
    env?: EnvOverrides;
    constructor(modelName: string, options?: {
        config?: VertexCompletionOptions;
        id?: string;
        env?: EnvOverrides;
    });
    id(): string;
    toString(): string;
    getApiHost(): string | undefined;
    getProjectId(): Promise<string | undefined>;
    getApiKey(): string | undefined;
    getRegion(): string;
    getPublisher(): string | undefined;
    callApi(prompt: string): Promise<ProviderResponse>;
}
export declare class VertexChatProvider extends VertexGenericProvider {
    static CHAT_MODELS: string[];
    constructor(modelName: string, options?: {
        config?: VertexCompletionOptions;
        id?: string;
        env?: EnvOverrides;
    });
    callApi(prompt: string, context?: CallApiContextParams): Promise<ProviderResponse>;
    callGeminiApi(prompt: string, context?: CallApiContextParams): Promise<ProviderResponse>;
    callPalm2Api(prompt: string): Promise<ProviderResponse>;
}
export declare class VertexEmbeddingProvider implements ApiEmbeddingProvider {
    modelName: string;
    config: any;
    env?: any;
    constructor(modelName: string, config?: any, env?: any);
    id(): string;
    getRegion(): string;
    callApi(): Promise<ProviderResponse>;
    callEmbeddingApi(input: string): Promise<ProviderEmbeddingResponse>;
}
export declare const DefaultGradingProvider: VertexChatProvider;
export declare const DefaultEmbeddingProvider: VertexEmbeddingProvider;
export {};
//# sourceMappingURL=vertex.d.ts.map