import { AIModel, AbstractDriver, Completion, CompletionChunk, DataSource, DriverOptions, EmbeddingsResult, ExecutionOptions, ModelSearchPayload, TrainingJob, TrainingOptions } from "@llumiverse/core";
import Replicate, { Prediction } from "replicate";
export interface ReplicateDriverOptions extends DriverOptions {
    apiKey: string;
}
export declare class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
    static PROVIDER: string;
    provider: string;
    service: Replicate;
    static parseModelId(modelId: string): {
        owner: string;
        model: string;
        version: string;
    };
    constructor(options: ReplicateDriverOptions);
    extractDataFromResponse(response: Prediction): Completion;
    requestTextCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunk>>;
    requestTextCompletion(prompt: string, options: ExecutionOptions): Promise<{
        result: any;
        original_response: Prediction | undefined;
    }>;
    startTraining(dataset: DataSource, options: TrainingOptions): Promise<TrainingJob>;
    /**
     * This method is not returning a consistent TrainingJob like the one returned by startTraining
     * Instead of returning the full model name `owner/model:version` it returns only the version `version
     * @param jobId
     * @returns
     */
    cancelTraining(jobId: string): Promise<TrainingJob>;
    /**
     * This method is not returning a consistent TrainingJob like the one returned by startTraining
     * Instead of returning the full model name `owner/model:version` it returns only the version `version
     * @param jobId
     * @returns
     */
    getTrainingJob(jobId: string): Promise<TrainingJob>;
    validateConnection(): Promise<boolean>;
    _listTrainableModels(): Promise<AIModel[]>;
    listTrainableModels(): Promise<AIModel[]>;
    listModels(params?: ModelSearchPayload): Promise<AIModel[]>;
    listModelVersions(owner: string, model: string): Promise<AIModel[]>;
    searchModels(params: ModelSearchPayload): Promise<AIModel[]>;
    generateEmbeddings(): Promise<EmbeddingsResult>;
}
//# sourceMappingURL=replicate.d.ts.map