/** * LLM Providers Package * Unified interface for OpenAI, Anthropic, and Cloudflare AI providers * with intelligent fallback logic and cost optimization */ export type { LLMProvider, LLMImageInput, GatewayMetadata, CacheHints, CacheObservability, ResponseCacheAdapter, LLMRequest, LLMResponse, LLMMessage, LLMConfig, TokenUsage, Tool, BuiltInTool, BuiltInToolType, BuiltInToolResult, ToolCall, ToolResult, ProviderConfig, OpenAIConfig, AnthropicConfig, CloudflareAIGatewayOptions, CloudflareConfig, CerebrasConfig, GroqConfig, NvidiaConfig, ModelCapabilities, ProviderCapabilities, ProviderMetrics, FallbackRule, CircuitBreakerConfig, CircuitBreakerState, RetryConfig, CostConfig, LLMError, StreamChunk, StreamResponse, QuotaHook, QuotaCheckInput, QuotaCheckResult, QuotaRecordInput, ToolExecutor, ToolLoopAbortSignal, ToolLoopOptions, ToolLoopState, ClassifyOptions, ClassifyResult, AnalyzeImageInput, ProviderBalance, RateLimitBalance, BatchRequest, BatchResponse, BatchJob } from './types.js'; export { canonicalToLLMRequest, normalizeLLMRequest, normalizeLLMResponse, } from './canonical.js'; export type { CanonicalDegradation, CanonicalFallbackHop, CanonicalLLMRequest, CanonicalLLMResponse, CanonicalMediaPart, CanonicalMessage, CanonicalOutputFormat, CanonicalProviderOptions, CanonicalRequestMetadata, CanonicalRequirements, CanonicalResponseError, CanonicalRoutingMetadata, CanonicalSamplingOptions, CanonicalTool, CanonicalToolMode, } from './canonical.js'; export { getGatewayRoutePlan } from './gateway-routing.js'; export type { GatewayRouteCachePlan, GatewayRouteCapabilityReport, GatewayRoutePlan, GatewayRouteRequirements, } from './gateway-routing.js'; export { BaseProvider } from './providers/base.js'; export { OpenAIProvider } from './providers/openai.js'; export { AnthropicProvider } from './providers/anthropic.js'; export { CloudflareProvider } from './providers/cloudflare.js'; export { CerebrasProvider } from './providers/cerebras.js'; export { GroqProvider } from './providers/groq.js'; export { NvidiaProvider } from './providers/nvidia.js'; export { LLMProviderFactory, createLLMProviderFactory, createCostOptimizedFactory } from './factory.js'; export type { ProviderFactoryConfig, CostAnalytics, ProviderHealthEntry } from './factory.js'; export { MODEL_CATALOG, MODEL_RECOMMENDATIONS, PROVIDER_FALLBACK_ORDER, getCatalogEntry, getProviderDefaultModel, getProviderDefaultModelForWorkload, getProviderForCatalogModel, getProvidersForCatalogModel, modelSupportsBuiltInTools, getRecommendedModel, getRecommendedModelForWorkload, getRoutingInfo, inferUseCaseFromRequest, normalizeModelWorkload, rankModels, } from './model-catalog.js'; export type { ModelCatalogEntry, ModelLifecycle, ModelPreferenceMap, ModelRecommendationUseCase, ModelSelectionContext, ModelWorkloadClass, ProviderName, RoutingInfo, } from './model-catalog.js'; import type { ProviderFactoryConfig, CostAnalytics, ProviderHealthEntry } from './factory.js'; import type { AnalyzeImageInput, ClassifyOptions, ClassifyResult, LLMProvider, LLMRequest, LLMResponse, ProviderBalance, ToolExecutor, ToolLoopOptions } from './types.js'; import type { ModelRecommendationUseCase } from './model-catalog.js'; export { LLMProviderError, RateLimitError, QuotaExceededError, AuthenticationError, InvalidRequestError, ModelNotFoundError, TimeoutError, NetworkError, ServerError, ContentFilterError, TokenLimitError, ConfigurationError, CircuitBreakerOpenError, SchemaDriftError, ToolLoopLimitError, ToolLoopAbortedError, LLMErrorFactory } from './errors.js'; export { validateSchema } from './utils/schema-validator.js'; export type { SchemaField, SchemaFieldType } from './utils/schema-validator.js'; export { extractShape, compareShapes, runCanaryCheck } from './utils/schema-canary.js'; export type { ShapeMap, CanaryDiff, CanaryReport } from './utils/schema-canary.js'; export { ImageProvider, normalizeAiResponse } from './image/index.js'; export type { ImageProviderConfig, ImageRequest, ImageResponse, ImageModelConfig, ImageModelInputFormat } from './image/index.js'; export { IMAGE_MODELS, getImageModel } from './image/index.js'; export { noopLogger, consoleLogger } from './utils/logger.js'; export type { Logger } from './utils/logger.js'; export { noopHooks, composeHooks } from './utils/hooks.js'; export type { ObservabilityHooks, RequestStartEvent, RequestEndEvent, CacheEvent, RequestErrorEvent, RetryEvent, FallbackEvent, CircuitStateChangeEvent, QuotaExhaustedEvent, BudgetThresholdEvent, QuotaCheckEvent, QuotaDeniedEvent, ProviderBalanceEvent, SchemaDriftEvent, } from './utils/hooks.js'; export { ExhaustionRegistry, defaultExhaustionRegistry } from './utils/exhaustion.js'; export type { ExhaustionEntry, ExhaustionRegistrySnapshot } from './utils/exhaustion.js'; export { LatencyHistogram, defaultLatencyHistogram } from './utils/latency-histogram.js'; export type { LatencySummary } from './utils/latency-histogram.js'; export { RetryManager, defaultRetryManager, withRetry, retry } from './utils/retry.js'; export { CircuitBreaker, CircuitBreakerManager, defaultCircuitBreakerManager } from './utils/circuit-breaker.js'; export type { CircuitBreakerManagerSnapshot, CircuitBreakerSnapshot } from './utils/circuit-breaker.js'; export { CostTracker, CostOptimizer, defaultCostTracker } from './utils/cost-tracker.js'; export type { ProviderCostEntry, ProviderCostBreakdownEntry } from './utils/cost-tracker.js'; export { CreditLedger } from './utils/credit-ledger.js'; export type { CreditLedgerSnapshot, LedgerEvent, ThresholdEvent, DepletionEvent, LedgerListener, BudgetConfig, ThresholdConfig, ThresholdTier, DepletionTier, ProviderAccumulator, ModelAccumulator, RateLimitDimension, RateLimitCheck, SpendEntry, BurnRate, DepletionEstimate, SpendSummary, } from './utils/credit-ledger.js'; /** * Overrides for `LLMProviders.fromEnv()` auto-discovery. */ export interface FromEnvOverrides { defaultProvider?: ProviderFactoryConfig['defaultProvider']; costOptimization?: boolean; enableCircuitBreaker?: boolean; enableRetries?: boolean; fallbackRules?: ProviderFactoryConfig['fallbackRules']; ledger?: ProviderFactoryConfig['ledger']; quotaHook?: ProviderFactoryConfig['quotaHook']; quotaFailPolicy?: ProviderFactoryConfig['quotaFailPolicy']; hooks?: ProviderFactoryConfig['hooks']; } /** * Main LLMProviders class for easy usage */ export declare class LLMProviders { private factory; constructor(config: ProviderFactoryConfig); /** * Auto-discover providers from a Cloudflare Worker `env` object. * * Scans for known API-key environment variables and bindings, configures * only the providers whose keys are present, and returns a ready-to-use * `LLMProviders` instance. * * @throws ConfigurationError if no providers are detected */ static fromEnv(env: Record, overrides?: FromEnvOverrides): LLMProviders; /** * Generate response with automatic provider selection and fallback */ generateResponse(request: LLMRequest): Promise; generateResponseStream(request: LLMRequest): Promise>; generateResponseWithTools(request: LLMRequest, toolExecutor: ToolExecutor, opts?: ToolLoopOptions): Promise; classify(input: string | LLMRequest, options?: ClassifyOptions): Promise>; analyzeImage(input: AnalyzeImageInput): Promise; getProviderBalance(provider?: string): Promise>; getRecommendedModel(request: LLMRequest, useCase?: ModelRecommendationUseCase): string; /** * Get specific provider instance */ getProvider(name: string): LLMProvider | undefined; /** * Get all available providers */ getAvailableProviders(): string[]; /** * Get provider health status */ getHealth(): Promise>; /** * Get cost analytics */ getCostAnalytics(): CostAnalytics; /** * Get latency histogram summaries for all providers */ getLatencyHistogram(): Record; /** * Get currently quota-exhausted providers */ getExhaustedProviders(): string[]; /** * Reset all metrics and circuit breakers */ reset(): void; /** * Update configuration */ updateConfig(config: Partial): void; } /** * Create LLMProviders instance with cost optimization */ export declare function createCostOptimizedLLMProviders(config: ProviderFactoryConfig): LLMProviders; /** * Create LLMProviders instance with basic configuration */ export declare function createLLMProviders(config: ProviderFactoryConfig): LLMProviders; /** * Default export for convenience */ export default LLMProviders; /** * Version and metadata */ export { VERSION } from './version.js'; export declare const SUPPORTED_PROVIDERS: readonly ["openai", "anthropic", "cloudflare", "cerebras", "groq", "nvidia"]; /** * Common model mappings for easy reference */ export declare const MODELS: { /** @deprecated Retired by OpenAI on 2026-04-03. Use GPT_4O_MINI or a current GPT-4 successor. */ readonly GPT_4O: "gpt-4o"; readonly GPT_4O_MINI: "gpt-4o-mini"; readonly GPT_4_TURBO: "gpt-4-turbo"; readonly GPT_4: "gpt-4"; readonly GPT_3_5_TURBO: "gpt-3.5-turbo"; readonly CLAUDE_OPUS_4_6: "claude-opus-4-6-20250618"; readonly CLAUDE_SONNET_4_6: "claude-sonnet-4-6-20250618"; readonly CLAUDE_OPUS_4: "claude-opus-4-20250618"; readonly CLAUDE_SONNET_4: "claude-sonnet-4-20250514"; readonly CLAUDE_HAIKU_4_5: "claude-haiku-4-5-20251001"; readonly CLAUDE_3_7_SONNET: "claude-3-7-sonnet-20250219"; readonly CLAUDE_3_5_SONNET: "claude-3-5-sonnet-20241022"; readonly CLAUDE_3_5_HAIKU: "claude-3-5-haiku-20241022"; readonly CLAUDE_3_OPUS: "claude-3-opus-20240229"; readonly CLAUDE_3_SONNET: "claude-3-sonnet-20240229"; /** @deprecated Retires 2026-04-19. Use CLAUDE_HAIKU_4_5 or CLAUDE_3_5_HAIKU. */ readonly CLAUDE_3_HAIKU: "claude-3-haiku-20240307"; readonly LLAMA_3_1_8B: "@cf/meta/llama-3.1-8b-instruct"; readonly LLAMA_3_1_70B: "@cf/meta/llama-3.1-70b-instruct"; readonly LLAMA_3_8B: "@cf/meta/llama-3-8b-instruct"; readonly MISTRAL_7B: "@cf/mistral/mistral-7b-instruct-v0.1"; readonly TINY_LLAMA: "@cf/tinyllama/tinyllama-1.1b-chat-v1.0"; readonly CEREBRAS_LLAMA_3_1_8B: "llama-3.1-8b"; readonly CEREBRAS_LLAMA_3_3_70B: "llama-3.3-70b"; readonly CEREBRAS_ZAI_GLM_4_7: "zai-glm-4.7"; readonly CEREBRAS_QWEN_3_235B: "qwen-3-235b-a22b-instruct-2507"; readonly GROQ_LLAMA_3_3_70B_VERSATILE: "llama-3.3-70b-versatile"; readonly GROQ_LLAMA_3_1_8B_INSTANT: "llama-3.1-8b-instant"; readonly GROQ_GPT_OSS_120B: "openai/gpt-oss-120b"; readonly GROQ_COMPOUND: "groq/compound"; readonly GROQ_COMPOUND_MINI: "groq/compound-mini"; readonly NVIDIA_LLAMA_3_3_70B: "meta/llama-3.3-70b-instruct"; readonly NVIDIA_LLAMA_4_MAVERICK: "meta/llama-4-maverick-17b-128e-instruct"; readonly NVIDIA_NEMOTRON_70B: "nvidia/llama-3.1-nemotron-70b-instruct"; readonly NVIDIA_NEMOTRON_SUPER_49B: "nvidia/llama-3.3-nemotron-super-49b-v1"; readonly NVIDIA_NEMOTRON_ULTRA_253B: "nvidia/llama-3.1-nemotron-ultra-253b-v1"; readonly NVIDIA_LLAMA_3_1_70B: "meta/llama-3.1-70b-instruct"; readonly NVIDIA_MISTRAL_LARGE_2: "mistralai/mistral-large-2-instruct"; readonly NVIDIA_DEEPSEEK_V4_FLASH: "deepseek-ai/deepseek-v4-flash"; readonly NVIDIA_DEEPSEEK_V4_PRO: "deepseek-ai/deepseek-v4-pro"; }; //# sourceMappingURL=index.d.ts.map