import { z } from "zod"; export declare const AIConfigSchema: z.ZodObject<{ openai: z.ZodObject<{ apiKey: z.ZodDefault; model: z.ZodDefault>; maxTokens: z.ZodDefault; temperature: z.ZodDefault; }, "strip", z.ZodTypeAny, { temperature: number; model: "gpt-4" | "gpt-4-turbo" | "gpt-3.5-turbo"; maxTokens: number; apiKey: string; }, { temperature?: number | undefined; model?: "gpt-4" | "gpt-4-turbo" | "gpt-3.5-turbo" | undefined; maxTokens?: number | undefined; apiKey?: string | undefined; }>; googleCloud: z.ZodObject<{ projectId: z.ZodOptional; keyFilename: z.ZodOptional; apiKey: z.ZodOptional; }, "strip", z.ZodTypeAny, { apiKey?: string | undefined; projectId?: string | undefined; keyFilename?: string | undefined; }, { apiKey?: string | undefined; projectId?: string | undefined; keyFilename?: string | undefined; }>; pinecone: z.ZodObject<{ apiKey: z.ZodDefault; environment: z.ZodDefault; indexName: z.ZodDefault; }, "strip", z.ZodTypeAny, { environment: string; apiKey: string; indexName: string; }, { environment?: string | undefined; apiKey?: string | undefined; indexName?: string | undefined; }>; removeBg: z.ZodObject<{ apiKey: z.ZodDefault; }, "strip", z.ZodTypeAny, { apiKey: string; }, { apiKey?: string | undefined; }>; redis: z.ZodObject<{ url: z.ZodDefault; ttl: z.ZodDefault; }, "strip", z.ZodTypeAny, { url: string; ttl: number; }, { url?: string | undefined; ttl?: number | undefined; }>; rateLimit: z.ZodObject<{ windowMs: z.ZodDefault; maxRequests: z.ZodDefault; }, "strip", z.ZodTypeAny, { windowMs: number; maxRequests: number; }, { windowMs?: number | undefined; maxRequests?: number | undefined; }>; costOptimization: z.ZodObject<{ enableCaching: z.ZodDefault; enableBatching: z.ZodDefault; maxCostPerRequest: z.ZodDefault; useCheaperModelsThreshold: z.ZodDefault; }, "strip", z.ZodTypeAny, { enableBatching: boolean; enableCaching: boolean; maxCostPerRequest: number; useCheaperModelsThreshold: number; }, { enableBatching?: boolean | undefined; enableCaching?: boolean | undefined; maxCostPerRequest?: number | undefined; useCheaperModelsThreshold?: number | undefined; }>; }, "strip", z.ZodTypeAny, { openai: { temperature: number; model: "gpt-4" | "gpt-4-turbo" | "gpt-3.5-turbo"; maxTokens: number; apiKey: string; }; googleCloud: { apiKey?: string | undefined; projectId?: string | undefined; keyFilename?: string | undefined; }; pinecone: { environment: string; apiKey: string; indexName: string; }; removeBg: { apiKey: string; }; redis: { url: string; ttl: number; }; rateLimit: { windowMs: number; maxRequests: number; }; costOptimization: { enableBatching: boolean; enableCaching: boolean; maxCostPerRequest: number; useCheaperModelsThreshold: number; }; }, { openai: { temperature?: number | undefined; model?: "gpt-4" | "gpt-4-turbo" | "gpt-3.5-turbo" | undefined; maxTokens?: number | undefined; apiKey?: string | undefined; }; googleCloud: { apiKey?: string | undefined; projectId?: string | undefined; keyFilename?: string | undefined; }; pinecone: { environment?: string | undefined; apiKey?: string | undefined; indexName?: string | undefined; }; removeBg: { apiKey?: string | undefined; }; redis: { url?: string | undefined; ttl?: number | undefined; }; rateLimit: { windowMs?: number | undefined; maxRequests?: number | undefined; }; costOptimization: { enableBatching?: boolean | undefined; enableCaching?: boolean | undefined; maxCostPerRequest?: number | undefined; useCheaperModelsThreshold?: number | undefined; }; }>; export type AIConfig = z.infer; export type AIProvider = "openai" | "pinecone" | "googleVision" | "removeBg" | "redis"; export interface RuntimeFeatureFlags { smartForms: boolean; semanticSearch: boolean; visionAPI: boolean; backgroundRemoval: boolean; aiCaching: boolean; aiBatching: boolean; collaboration: boolean; } export interface ProviderUnconfiguredPayload { error: string; message: string; code: "AURA_PROVIDER_UNCONFIGURED"; provider: AIProvider; feature: string; remediation: string; docsUrl: string; } export declare const defaultAIConfig: AIConfig; export declare class ProviderUnconfiguredError extends Error { readonly provider: AIProvider; readonly feature: string; readonly code = "AURA_PROVIDER_UNCONFIGURED"; readonly statusCode = 503; readonly remediation: string; readonly docsUrl = "https://auraglass.auraone.ai/docs/ai-providers"; constructor(provider: AIProvider, feature: string, remediation?: string); toJSON(): ProviderUnconfiguredPayload; } export declare function createAIConfig(env?: NodeJS.ProcessEnv): AIConfig; export declare function createRuntimeFeatureFlags(env?: NodeJS.ProcessEnv): RuntimeFeatureFlags; export declare function isProviderConfigured(config: AIConfig, provider: AIProvider): boolean; export declare function assertProviderConfigured(config: AIConfig, provider: AIProvider, feature: string, remediation?: string): void; export declare function validateAIConfig(config: unknown): AIConfig; //# sourceMappingURL=config.d.ts.map