/** * WS15: Catwalk-style provider/model registry schema. * * Registry JSON schema defined with @sinclair/typebox (matches existing * @zhachory1/mewrite-ai conventions — ajv + typebox, no zod dependency). * * Validation: use validateRegistry() which returns a typed result. */ import { type Static } from "@sinclair/typebox"; export declare const RegistryModelCapabilitySchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"tools">, import("@sinclair/typebox").TLiteral<"vision">, import("@sinclair/typebox").TLiteral<"cache">, import("@sinclair/typebox").TLiteral<"reasoning">]>; export declare const RegistryModelSchema: import("@sinclair/typebox").TObject<{ /** Canonical model ID (e.g. "claude-sonnet-4-5") */ id: import("@sinclair/typebox").TString; /** Human-readable display name */ displayName: import("@sinclair/typebox").TString; /** Context window in tokens */ contextWindow: import("@sinclair/typebox").TNumber; /** Max output tokens */ maxOutputTokens: import("@sinclair/typebox").TOptional; /** Input cost per million tokens (USD) */ inputCostPerMtok: import("@sinclair/typebox").TOptional; /** Output cost per million tokens (USD) */ outputCostPerMtok: import("@sinclair/typebox").TOptional; /** Supported capabilities */ capabilities: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"vision">, import("@sinclair/typebox").TLiteral<"cache">, import("@sinclair/typebox").TLiteral<"reasoning">]>>>; }>; export declare const RegistryProviderAuthSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"api-key">, import("@sinclair/typebox").TLiteral<"oauth">, import("@sinclair/typebox").TLiteral<"none">]>; export declare const RegistryProviderKindSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"anthropic">, import("@sinclair/typebox").TLiteral<"openai">, import("@sinclair/typebox").TLiteral<"google">, import("@sinclair/typebox").TLiteral<"openrouter">, import("@sinclair/typebox").TLiteral<"mistral">, import("@sinclair/typebox").TLiteral<"bedrock">, import("@sinclair/typebox").TLiteral<"gemini-cli">, import("@sinclair/typebox").TLiteral<"vertex">, import("@sinclair/typebox").TLiteral<"xai">, import("@sinclair/typebox").TLiteral<"groq">, import("@sinclair/typebox").TLiteral<"cerebras">, import("@sinclair/typebox").TLiteral<"other">]>; export declare const RegistryProviderOAuthSchema: import("@sinclair/typebox").TObject<{ authorizationUrl: import("@sinclair/typebox").TString; tokenUrl: import("@sinclair/typebox").TString; clientId: import("@sinclair/typebox").TString; scopes: import("@sinclair/typebox").TArray; }>; export declare const RegistryProviderSchema: import("@sinclair/typebox").TObject<{ /** Unique provider identifier (e.g. "anthropic", "openai") */ id: import("@sinclair/typebox").TString; /** Human-readable name */ name: import("@sinclair/typebox").TString; /** Provider API kind — maps to @zhachory1/mewrite-ai Api type */ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"anthropic">, import("@sinclair/typebox").TLiteral<"openai">, import("@sinclair/typebox").TLiteral<"google">, import("@sinclair/typebox").TLiteral<"openrouter">, import("@sinclair/typebox").TLiteral<"mistral">, import("@sinclair/typebox").TLiteral<"bedrock">, import("@sinclair/typebox").TLiteral<"gemini-cli">, import("@sinclair/typebox").TLiteral<"vertex">, import("@sinclair/typebox").TLiteral<"xai">, import("@sinclair/typebox").TLiteral<"groq">, import("@sinclair/typebox").TLiteral<"cerebras">, import("@sinclair/typebox").TLiteral<"other">]>; /** Optional override base URL */ baseUrl: import("@sinclair/typebox").TOptional; /** Auth mechanism */ auth: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"api-key">, import("@sinclair/typebox").TLiteral<"oauth">, import("@sinclair/typebox").TLiteral<"none">]>; /** OAuth config when auth === "oauth" */ oauth: import("@sinclair/typebox").TOptional; }>>; /** Models offered by this provider */ models: import("@sinclair/typebox").TArray; /** Input cost per million tokens (USD) */ inputCostPerMtok: import("@sinclair/typebox").TOptional; /** Output cost per million tokens (USD) */ outputCostPerMtok: import("@sinclair/typebox").TOptional; /** Supported capabilities */ capabilities: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"vision">, import("@sinclair/typebox").TLiteral<"cache">, import("@sinclair/typebox").TLiteral<"reasoning">]>>>; }>>; }>; export declare const RegistrySchema: import("@sinclair/typebox").TObject<{ /** Semver of this registry snapshot */ version: import("@sinclair/typebox").TString; /** Channel: stable | beta */ channel: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"beta">]>>; /** ISO-8601 timestamp of when this registry was published */ publishedAt: import("@sinclair/typebox").TOptional; providers: import("@sinclair/typebox").TArray, import("@sinclair/typebox").TLiteral<"openai">, import("@sinclair/typebox").TLiteral<"google">, import("@sinclair/typebox").TLiteral<"openrouter">, import("@sinclair/typebox").TLiteral<"mistral">, import("@sinclair/typebox").TLiteral<"bedrock">, import("@sinclair/typebox").TLiteral<"gemini-cli">, import("@sinclair/typebox").TLiteral<"vertex">, import("@sinclair/typebox").TLiteral<"xai">, import("@sinclair/typebox").TLiteral<"groq">, import("@sinclair/typebox").TLiteral<"cerebras">, import("@sinclair/typebox").TLiteral<"other">]>; /** Optional override base URL */ baseUrl: import("@sinclair/typebox").TOptional; /** Auth mechanism */ auth: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"api-key">, import("@sinclair/typebox").TLiteral<"oauth">, import("@sinclair/typebox").TLiteral<"none">]>; /** OAuth config when auth === "oauth" */ oauth: import("@sinclair/typebox").TOptional; }>>; /** Models offered by this provider */ models: import("@sinclair/typebox").TArray; /** Input cost per million tokens (USD) */ inputCostPerMtok: import("@sinclair/typebox").TOptional; /** Output cost per million tokens (USD) */ outputCostPerMtok: import("@sinclair/typebox").TOptional; /** Supported capabilities */ capabilities: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"vision">, import("@sinclair/typebox").TLiteral<"cache">, import("@sinclair/typebox").TLiteral<"reasoning">]>>>; }>>; }>>; }>; export type RegistryModel = Static; export type RegistryProvider = Static; export type Registry = Static; export type RegistryValidationResult = { ok: true; registry: Registry; } | { ok: false; errors: string[]; }; /** * Validate a raw unknown value against the registry schema. * Returns typed Registry on success, or descriptive error strings on failure. */ export declare function validateRegistry(raw: unknown): RegistryValidationResult; //# sourceMappingURL=schema.d.ts.map