export interface AIProviderConfig {
    apiKey?: string;
    baseUrl?: string;
    organization?: string;
    defaultModel?: string;
    timeout?: number;
    maxRetries?: number;
    [key: string]: any;
}
export interface AIMessage {
    role: 'system' | 'user' | 'assistant' | 'function';
    content: string;
    name?: string;
    functionCall?: {
        name: string;
        arguments: string;
    };
}
export interface TextCompletionOptions {
    model?: string;
    maxTokens?: number;
    temperature?: number;
    topP?: number;
    presencePenalty?: number;
    frequencyPenalty?: number;
    stop?: string[];
    stream?: boolean;
}
export interface ChatCompletionOptions extends TextCompletionOptions {
    messages: AIMessage[];
    functions?: AIFunction[];
    functionCall?: 'auto' | 'none' | {
        name: string;
    };
}
export interface AIFunction {
    name: string;
    description: string;
    parameters: {
        type: 'object';
        properties: Record<string, any>;
        required?: string[];
    };
}
export interface EmbeddingOptions {
    model?: string;
    user?: string;
}
export interface EmbeddingResult {
    embeddings: number[][];
    usage: {
        promptTokens: number;
        totalTokens: number;
    };
}
export interface TextCompletionResult {
    text: string;
    usage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
}
export interface ChatCompletionResult {
    message: AIMessage;
    usage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
}
export interface AIModelInfo {
    id: string;
    created: number;
    ownedBy: string;
    maxContextLength?: number;
    supportsFunctionCalling?: boolean;
}
