export interface AIMessage {
    role: 'system' | 'user' | 'assistant';
    content: string;
}
export interface AICompletionParams {
    model: string;
    messages: AIMessage[];
    temperature?: number;
    maxTokens?: number;
    topP?: number;
    frequencyPenalty?: number;
    presencePenalty?: number;
    stopSequences?: string[];
}
export interface AICompletionResponse {
    content: string;
    model: string;
    usage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    finishReason: 'stop' | 'length' | 'tool_use' | 'error';
    raw?: any;
}
export interface AIProviderCredentials {
    apiKey?: string;
    apiUrl?: string;
    organizationId?: string;
    projectId?: string;
    [key: string]: any;
}
export interface AIProvider {
    name: string;
    type: 'openai' | 'anthropic' | 'google' | 'local' | 'custom';
    isConfigured(): Promise<boolean>;
    getAvailableModels(): Promise<string[]>;
    complete(params: AICompletionParams): Promise<AICompletionResponse>;
    estimateCost(params: AICompletionParams): Promise<number>;
    testConnection(): Promise<boolean>;
}
export interface AIProviderConfig {
    name: string;
    type: 'openai' | 'anthropic' | 'google' | 'local' | 'custom';
    enabled: boolean;
    credentialId?: string;
    defaultModel?: string;
    rateLimits?: {
        requestsPerMinute?: number;
        tokensPerMinute?: number;
    };
    metadata?: Record<string, any>;
}
//# sourceMappingURL=types.d.ts.map