import { z } from 'zod';
/**
 * AI Configuration Schema
 * Validates and structures AI service configuration
 */
declare const AIConfigSchema: z.ZodObject<{
    openai: z.ZodObject<{
        apiKey: z.ZodString;
        model: z.ZodDefault<z.ZodString>;
        maxTokens: z.ZodDefault<z.ZodNumber>;
        temperature: z.ZodDefault<z.ZodNumber>;
        retryAttempts: z.ZodDefault<z.ZodNumber>;
        retryDelayMs: z.ZodDefault<z.ZodNumber>;
        timeout: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>;
    langchain: z.ZodObject<{
        verbose: z.ZodDefault<z.ZodBoolean>;
        cacheEnabled: z.ZodDefault<z.ZodBoolean>;
        cacheTTL: z.ZodDefault<z.ZodNumber>;
        maxConcurrency: z.ZodDefault<z.ZodNumber>;
        memoryBufferSize: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>;
    rateLimit: z.ZodObject<{
        maxRequestsPerMinute: z.ZodDefault<z.ZodNumber>;
        maxTokensPerMinute: z.ZodDefault<z.ZodNumber>;
        maxRequestsPerDay: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>;
    monitoring: z.ZodObject<{
        trackTokenUsage: z.ZodDefault<z.ZodBoolean>;
        logLevel: z.ZodDefault<z.ZodEnum<{
            error: "error";
            info: "info";
            debug: "debug";
            warn: "warn";
        }>>;
        metricsEnabled: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>;
}, z.core.$strip>;
export type AIConfig = z.infer<typeof AIConfigSchema>;
/**
 * Validates API keys on startup
 * Throws error if required keys are missing or invalid
 */
export declare function validateAPIKeys(): void;
/**
 * Loads and validates AI configuration from environment variables
 * @returns Validated AI configuration object
 */
export declare function loadAIConfig(): AIConfig;
export declare function getAIConfig(): AIConfig;
/**
 * Reset configuration cache (useful for testing)
 */
export declare function resetConfigCache(): void;
/**
 * Check if AI services are properly configured
 */
export declare function isAIConfigured(): boolean;
/**
 * Get configuration summary for logging
 */
export declare function getConfigSummary(): Record<string, any>;
export {};
//# sourceMappingURL=ai.config.d.ts.map