import { OnModuleInit } from '@nestjs/common';
import { AIProviderConfig, AIMessage, TextCompletionOptions, ChatCompletionOptions, EmbeddingOptions, TextCompletionResult, ChatCompletionResult, EmbeddingResult, AIModelInfo } from './interfaces/ai.interfaces';
export declare enum AIProvider {
    OPENAI = "openai"
}
export interface AIModuleOptions {
    defaultProvider: AIProvider;
    providers: {
        [AIProvider.OPENAI]?: AIProviderConfig;
    };
}
export declare class AIService implements OnModuleInit {
    private readonly options;
    private readonly logger;
    private providers;
    private defaultProvider;
    constructor(options: AIModuleOptions);
    onModuleInit(): Promise<void>;
    private getProvider;
    listModels(provider?: AIProvider): Promise<AIModelInfo[]>;
    getModel(modelId: string, provider?: AIProvider): Promise<AIModelInfo>;
    createCompletion(prompt: string, options?: TextCompletionOptions, provider?: AIProvider): Promise<TextCompletionResult>;
    createChatCompletion(options: ChatCompletionOptions, provider?: AIProvider): Promise<ChatCompletionResult>;
    createEmbedding(input: string | string[], options?: EmbeddingOptions, provider?: AIProvider): Promise<EmbeddingResult>;
    createSystemMessage(content: string): AIMessage;
    createUserMessage(content: string): AIMessage;
    createAssistantMessage(content: string): AIMessage;
    createConversation(systemPrompt: string, userPrompt?: string): AIMessage[];
    estimateTokenCount(text: string, provider?: AIProvider): number;
}
