import { z } from 'zod'; export declare const ResearchConfigSchema: z.ZodDefault, z.ZodTransform>>; timeoutMs: z.ZodDefault; maxResultsPerQuery: z.ZodDefault; perCallBackoffMs: z.ZodDefault; minPerKeyIntervalMs: z.ZodDefault; }, z.core.$strict>>; builtinAdapters: z.ZodDefault; semanticScholar: z.ZodDefault; semanticScholarApiKey: z.ZodOptional; githubSearch: z.ZodDefault; githubPat: z.ZodOptional; openalex: z.ZodDefault; crossref: z.ZodDefault; pubmed: z.ZodDefault; pubmedApiKey: z.ZodOptional; contactEmail: z.ZodOptional; }, z.core.$strict>>; }, z.core.$strict>>; export type ResearchConfig = z.infer; declare const agentConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ model: z.ZodString; effort: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"claude">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ model: z.ZodString; effort: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"codex">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>], "type">; /** Raw (possibly compressed) request body cap — 256 KiB. */ export declare const COMPRESSED_BODY_LIMIT_BYTES: number; export declare const serverConfigSchema: z.ZodObject<{ server: z.ZodDefault; port: z.ZodDefault; auth: z.ZodDefault; }, z.core.$strip>>; limits: z.ZodDefault; batchTtlMs: z.ZodDefault; projectCap: z.ZodDefault; maxContextBlockBytes: z.ZodDefault; maxContextBlocksPerProject: z.ZodDefault; shutdownDrainMs: z.ZodDefault; }, z.core.$strip>>; autoUpdateSkills: z.ZodDefault; stateDir: z.ZodDefault; }, z.core.$strip>>; }, z.core.$strict>; export declare const multiModelConfigSchema: z.ZodObject<{ agents: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"claude">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ model: z.ZodString; effort: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"codex">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>], "type">>; complex: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"claude">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ model: z.ZodString; effort: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"codex">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>], "type">>; main: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"claude">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ model: z.ZodString; effort: z.ZodOptional>; inputCostPerMTok: z.ZodOptional; outputCostPerMTok: z.ZodOptional; timeoutMs: z.ZodOptional; inputTokenSoftLimit: z.ZodOptional; type: z.ZodLiteral<"codex">; baseUrl: z.ZodOptional; apiKey: z.ZodOptional; apiKeyEnv: z.ZodOptional; }, z.core.$strict>], "type">>; }, z.core.$strip>>; diagnostics: z.ZodOptional; logDir: z.ZodOptional; }, z.core.$strip>>; server: z.ZodDefault; port: z.ZodDefault; auth: z.ZodDefault; }, z.core.$strip>>; limits: z.ZodDefault; batchTtlMs: z.ZodDefault; projectCap: z.ZodDefault; maxContextBlockBytes: z.ZodDefault; maxContextBlocksPerProject: z.ZodDefault; shutdownDrainMs: z.ZodDefault; }, z.core.$strip>>; autoUpdateSkills: z.ZodDefault; stateDir: z.ZodDefault; }, z.core.$strip>>; telemetry: z.ZodOptional>; research: z.ZodDefault, z.ZodTransform>>; timeoutMs: z.ZodDefault; maxResultsPerQuery: z.ZodDefault; perCallBackoffMs: z.ZodDefault; minPerKeyIntervalMs: z.ZodDefault; }, z.core.$strict>>; builtinAdapters: z.ZodDefault; semanticScholar: z.ZodDefault; semanticScholarApiKey: z.ZodOptional; githubSearch: z.ZodDefault; githubPat: z.ZodOptional; openalex: z.ZodDefault; crossref: z.ZodDefault; pubmed: z.ZodDefault; pubmedApiKey: z.ZodOptional; contactEmail: z.ZodOptional; }, z.core.$strict>>; }, z.core.$strict>>; clients: z.ZodOptional & z.core.$partial, z.ZodEnum<{ on: "on"; off: "off"; }>>>; }, z.core.$strict>; /** Canonical config types — inferred from the Zod schemas above so the * validated shape and the TypeScript type can never drift. Provider configs * (ClaudeProviderConfig / CodexProviderConfig / ProviderConfig) have no Zod * schema and remain hand-written in types/config.ts. */ export type MultiModelConfig = z.infer; export type AgentConfig = z.infer; /** Inferred type for the standalone server configuration block. */ export type ServerConfig = z.infer; /** * Parse a raw config object — validates schema, no side effects. * Does NOT load from disk. */ export declare function parseConfig(raw: unknown): MultiModelConfig; /** * A config that can actually run a daemon: every required tier is present. * * `MultiModelConfig` describes what may legally sit in the file; this describes * what `mma serve` needs. Separating them is what lets `mma sync` write a roster * to a machine that has not chosen its models yet. */ export type RunnableConfig = MultiModelConfig & { agents: Required>; }; /** * Narrow a loaded config to one the daemon can serve, or throw naming what is * missing. * * Deliberately a thrown error rather than a Zod refinement: by the time this * runs the user has a real file on disk, and "agents.standard is not * configured — run `mma configure-provider` or add it to " is a better * thing to read than an `invalid_type` at path `["agents"]`. */ export declare function assertRunnable(config: MultiModelConfig, configPath?: string): asserts config is RunnableConfig; export {}; //# sourceMappingURL=schema.d.ts.map