/** * pi-ai's configuration schemas (built with pi-schema) as TypeBox schemas, for the coding agent's own TypeBox-built * configuration schemas (models.json, settings.json): the same JSON, typed for TypeBox's `Static`. */ import { Type } from "typebox"; export declare const ProviderCompatSchema: Type.TUnsafe<{ supportsStore?: boolean | undefined; supportsReasoningEffort?: boolean | undefined; supportsUsageInStreaming?: boolean | undefined; supportsFinishReason?: boolean | undefined; maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined; requiresToolResultName?: boolean | undefined; requiresAssistantAfterToolResult?: boolean | undefined; requiresThinkingAsText?: boolean | undefined; requiresReasoningContentOnAssistantMessages?: boolean | undefined; thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined; chatTemplateKwargs?: Record | undefined; chatTemplateArgs?: Record | undefined; openRouterRouting?: { allow_fallbacks?: boolean | undefined; require_parameters?: boolean | undefined; data_collection?: "allow" | "deny" | undefined; zdr?: boolean | undefined; enforce_distillable_text?: boolean | undefined; order?: string[] | undefined; only?: string[] | undefined; ignore?: string[] | undefined; quantizations?: string[] | undefined; sort?: string | { by?: string | undefined; partition?: string | null | undefined; } | undefined; max_price?: { prompt?: string | number | undefined; completion?: string | number | undefined; image?: string | number | undefined; audio?: string | number | undefined; request?: string | number | undefined; } | undefined; preferred_min_throughput?: number | { p50?: number | undefined; p75?: number | undefined; p90?: number | undefined; p99?: number | undefined; } | undefined; preferred_max_latency?: number | { p50?: number | undefined; p75?: number | undefined; p90?: number | undefined; p99?: number | undefined; } | undefined; } | undefined; vercelGatewayRouting?: { only?: string[] | undefined; order?: string[] | undefined; } | undefined; zaiToolStream?: boolean | undefined; thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined; supportsThinkingTokenBudget?: boolean | undefined; supportsMidConvoToolAdditions?: boolean | undefined; cacheControlFormat?: "anthropic" | undefined; vllmPriority?: number | undefined; supportsAdditionalTools?: boolean | undefined; supportsToolSearch?: boolean | undefined; supportsExplicitPromptCacheMode?: boolean | undefined; supportsMaxOutputTokens?: boolean | undefined; supportsEagerToolInputStreaming?: boolean | undefined; supportsCacheControlOnTools?: boolean | undefined; supportsTemperature?: boolean | undefined; forceAdaptiveThinking?: boolean | undefined; allowEmptySignature?: boolean | undefined; supportsStrictTools?: boolean | undefined; supportsMidConvoToolChanges?: boolean | undefined; allowedFallbackModels?: { provider: string; model: string; cost: { input: number; output: number; cacheRead: number; cacheWrite: number; tiers?: { input: number; output: number; cacheRead: number; cacheWrite: number; inputTokensAbove: number; }[] | undefined; }; }[] | undefined; imageInput?: "assets" | "images" | "state-image-urls" | undefined; sendImageOptInHeader?: boolean | undefined; supportsDeveloperRole?: boolean | undefined; supportsMidConvoSystemMessages?: boolean | undefined; sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined; supportsMidConvoEffort?: boolean | undefined; supportsLongCacheRetention?: boolean | undefined; supportsStrictMode?: boolean | undefined; supportsOpenAIGrammarTools?: boolean | undefined; sendSessionAffinityHeaders?: boolean | undefined; }>; export declare const ModelCostSchema: Type.TUnsafe<{ input: number; output: number; cacheRead: number; cacheWrite: number; tiers?: { input: number; output: number; cacheRead: number; cacheWrite: number; inputTokensAbove: number; }[] | undefined; }>; export declare const ModelInputLimitsSchema: Type.TUnsafe<{ maxRequestBytes?: number | undefined; images?: { resize?: { maxWidth?: number | undefined; maxHeight?: number | undefined; maxBytes?: number | undefined; jpegQuality?: number | undefined; } | undefined; maxPerMessage?: number | undefined; maxPerRequest?: number | undefined; } | undefined; }>; export declare const ModelInputModalitySchema: Type.TUnsafe<"image" | "text">; export declare const ModelPromptCacheSchema: Type.TUnsafe<{ short?: number | undefined; long?: number | undefined; }>; export declare const ModelThinkingLevelSchema: Type.TUnsafe<"high" | "low" | "max" | "medium" | "minimal" | "off" | "xhigh">; export declare const ThinkingLevelMapSchema: Type.TUnsafe<{ off?: string | null | undefined; minimal?: string | null | undefined; low?: string | null | undefined; medium?: string | null | undefined; high?: string | null | undefined; xhigh?: string | null | undefined; max?: string | null | undefined; }>; /** `ModelCostSchema` with every field optional, for model overrides that change some of the rates. */ export declare const PartialModelCostSchema: Type.TUnsafe>;