import { z } from "zod"; //#region src/domain/xling/config.d.ts /** * Provider configuration type */ interface ProviderConfig { name: string; baseUrl: string; apiKey?: string; apiKeys?: string[]; models: string[]; priority?: number; timeout?: number; headers?: Record; weight?: number; enabled?: boolean; /** Tool format expected by this provider: "openai" (default) or "anthropic" */ toolFormat?: "openai" | "anthropic"; } /** * Unified provider configuration schema * Supports both single apiKey and multiple apiKeys for rotation */ declare const ProviderConfigSchema: z.ZodType; /** * Get all API keys from a provider config * Normalizes apiKey and apiKeys into a single array */ declare function getProviderApiKeys(provider: ProviderConfig): string[]; type LoadBalanceStrategy = "round-robin" | "random" | "weighted" | "failover"; declare const LoadBalanceStrategySchema: z.ZodType; interface ProxyConfig { /** Override global providers for proxy (when set, proxy uses only these providers) */ providers?: ProviderConfig[]; enabled?: boolean; port?: number; host?: string; accessKey?: string; loadBalance?: LoadBalanceStrategy; modelMapping?: Record; /** Models that natively support Responses API - skip conversion for these */ passthroughResponsesAPI?: string[]; keyRotation?: { enabled?: boolean; onError?: boolean; cooldownMs?: number; }; } declare const ProxyConfigSchema: z.ZodType; interface RetryPolicy { maxRetries?: number; backoffMs?: number; } declare const RetryPolicySchema: z.ZodType; interface PlatformCommand { win32?: string; darwin?: string; linux?: string; default: string; } declare const PlatformCommandSchema: z.ZodType; interface PlatformArgs { win32?: string[]; darwin?: string[]; linux?: string[]; default: string[]; } declare const PlatformArgsSchema: z.ZodType; interface PipelineStep { command: string | PlatformCommand; args?: string[] | PlatformArgs; } declare const PipelineStepSchema: z.ZodType; interface PlatformShell { win32?: string; darwin?: string; linux?: string; default: string; } declare const PlatformShellSchema: z.ZodType; interface PlatformPipeline { win32?: PipelineStep[]; darwin?: PipelineStep[]; linux?: PipelineStep[]; default: PipelineStep[]; } declare const PlatformPipelineSchema: z.ZodType; type ShortcutConfig = { command?: string; args?: string[]; shell?: string | PlatformShell; pipeline?: PipelineStep[] | PlatformPipeline; description?: string; }; declare const ShortcutConfigSchema: z.ZodType; /** * Simplified Xling configuration * - providers: Unified provider list (shared by proxy and prompt) * - defaultModel: Default model for all services * - proxy: Proxy-specific settings (port, accessKey, modelMapping, etc.) * - retryPolicy: Retry settings for prompt service * - shortcuts: Command shortcuts */ interface XlingConfig { providers: ProviderConfig[]; defaultModel?: string; loadBalance?: LoadBalanceStrategy; noRetryErrors?: string[]; cooldownMs?: number; proxy?: ProxyConfig; retryPolicy?: RetryPolicy; shortcuts?: Record; } declare const XlingConfigSchema: z.ZodType; /** * Validate and parse Xling configuration * Automatically migrates old format to new format */ declare function validateXlingConfig(data: unknown): XlingConfig; /** * Get normalized priority (undefined becomes MAX_SAFE_INTEGER) */ declare function getNormalizedPriority(priority?: number): number; /** @deprecated Use ProviderConfig instead */ type ProxyProviderConfig = ProviderConfig; /** @deprecated Use XlingConfig.providers instead */ interface PromptConfig { providers: ProviderConfig[]; defaultModel?: string; retryPolicy?: RetryPolicy; } //#endregion export { XlingConfig as C, validateXlingConfig as D, getProviderApiKeys as E, ShortcutConfigSchema as S, getNormalizedPriority as T, ProxyConfigSchema as _, PlatformArgs as a, RetryPolicySchema as b, PlatformCommandSchema as c, PlatformShell as d, PlatformShellSchema as f, ProxyConfig as g, ProviderConfigSchema as h, PipelineStepSchema as i, PlatformPipeline as l, ProviderConfig as m, LoadBalanceStrategySchema as n, PlatformArgsSchema as o, PromptConfig as p, PipelineStep as r, PlatformCommand as s, LoadBalanceStrategy as t, PlatformPipelineSchema as u, ProxyProviderConfig as v, XlingConfigSchema as w, ShortcutConfig as x, RetryPolicy as y };