import { BaseChatModel, BaseChatModelCallOptions } from '@langchain/core/language_models/chat_models';
import { BaseMessage } from '@langchain/core/messages';
import { ChatResult } from '@langchain/core/outputs';
import { Tool } from '@langchain/core/tools';
interface StraicoChatModelParams extends BaseChatModelCallOptions {
    apiKey: string;
    baseURL: string;
    modelName: string;
    temperature?: number;
    topP?: number;
    maxTokens?: number;
    presencePenalty?: number;
    frequencyPenalty?: number;
    timeout?: number;
    maxRetries?: number;
    callbacks?: any[];
    onFailedAttempt?: (error: Error) => void;
}
export declare class StraicoChatModel extends BaseChatModel {
    apiKey: string;
    baseURL: string;
    modelName: string;
    temperature?: number;
    topP?: number;
    maxTokens?: number;
    presencePenalty?: number;
    frequencyPenalty?: number;
    timeout: number;
    maxRetries: number;
    boundTools: Tool[];
    callbacks?: any[];
    onFailedAttempt?: (error: Error) => void;
    constructor(params: StraicoChatModelParams);
    _generate(messages: BaseMessage[], options?: BaseChatModelCallOptions): Promise<ChatResult>;
    bindTools(tools: Tool[]): this;
    _llmType(): string;
}
export {};
