/**
 * Common AI related type definitions
 */
/** Options for AI requests */
export interface AIRequestOptions {
    temperature?: number;
    maxTokens?: number;
    systemPrompt?: string;
    format?: 'text' | 'json';
    type?: string;
    batch?: string;
    model?: string;
}
/** Represents a request sent to an AI model */
export interface AIRequest {
    prompt: string;
    options?: AIRequestOptions;
}
/** Represents the token usage statistics for an AI response */
export interface AITokenUsage {
    input: number;
    output: number;
    total: number;
}
/** Represents a response received from an AI model */
export interface AIResponse {
    content: string;
    model: string;
    tokenUsage: AITokenUsage;
    cost: number;
    error?: string;
    metadata?: any;
}
/** Configuration for a specific AI model instance */
export interface AIModelConfig {
    id: string;
    name: string;
    provider: string;
    model: string;
    apiKey: string;
    apiEndpoint?: string;
    maxTokens?: number;
    temperature?: number;
    inputCostPer1K: number;
    outputCostPer1K: number;
    costPerRequest?: number;
    creditCost?: number;
    requiresSubscription?: boolean;
    minSubscriptionTier?: string;
    capabilities?: string[];
    pricing?: {
        inputCostPer1MTokens: number;
        outputCostPer1MTokens: number;
    };
}
/** Interface for different AI model interaction strategies */
export interface AIModelStrategy {
    getConfig(): AIModelConfig;
    generate(request: AIRequest): Promise<AIResponse>;
    isAvailable(): Promise<boolean>;
}
//# sourceMappingURL=ai.d.ts.map