import { AIModel, Completion, PromptOptions, PromptSegment, ExecutionOptions, CompletionChunk } from "@llumiverse/core";
import { VertexAIDriver } from "./index.js";
export interface ModelDefinition<PromptT = any> {
    model: AIModel;
    versions?: string[];
    createPrompt: (driver: VertexAIDriver, segments: PromptSegment[], options: PromptOptions) => Promise<PromptT>;
    requestTextCompletion: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<Completion>;
    requestTextCompletionStream: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<AsyncIterable<CompletionChunk>>;
    preValidationProcessing?(result: Completion, options: ExecutionOptions): {
        result: Completion;
        options: ExecutionOptions;
    };
}
export declare function getModelDefinition(model: string): ModelDefinition;
//# sourceMappingURL=models.d.ts.map