import { LanguageModel } from 'ai';
import { LlmToolCompiler } from '../tools/model';
export declare abstract class LlmProvider<TOptions extends object = {}> {
    model: string;
    private provided;
    abstract name: string;
    abstract tag: LanguageModel;
    /** Model temperature `0.1 default` */
    temperature: number;
    /** Model agent steps count limit `30 default` */
    limit: number;
    /** Model provider options */
    options: TOptions;
    /** Model tools */
    tools: Record<string, LlmToolCompiler>;
    connection: {
        key: string;
        url?: string;
    };
    constructor(model: string, provided: Pick<LlmProvider<TOptions>, 'connection' | 'options'> & {
        temperature?: number;
        limit?: number;
        tools?: LlmProvider<TOptions>['tools'];
    });
    abstract clone(): this;
    /** Clones this instance and assigns new values */
    assign(payload: Partial<Pick<LlmProvider<TOptions>, 'temperature' | 'options' | 'tools' | 'limit'>>): this;
}
//# sourceMappingURL=model.d.ts.map