/** * Configuration schema for the scholarly literature subsystem. * * The schema is the single authority for defaults and bounds: the loader * validates a committed section and refuses one outside these ranges, so the * resolver below only unwraps volatile references and trims secrets. It does * not re-implement `min`, `max`, or `default` — a second copy of a rule is a * second answer to the same question, and a silently clamped typo is worse * than a refused commit. * * The schema carries no enablement field. The component's presence is the * authorization: while `dsh-zotero/scholarly` is not mounted, this service * does not exist and no request can leave the host. The schema describes only * how the component behaves once it is mounted. * * Every field is volatile: a settings commit lands in the running fiber's * references without remounting, and each tool reads the live value per call. * * @module dsh-zotero/scholarly/config */ import type { Volatile } from '@deepseek-ai/cordis'; import Schema from '@deepseek-ai/schemastery'; export interface ScholarlyConfig { email?: Volatile; s2Key?: Volatile; ncbiKey?: Volatile; openalexKey?: Volatile; maxResults?: Volatile; maxContentChars?: Volatile; } /** The plain values {@link resolveScholarlyConfig} produces from a live section. */ export interface ResolvedScholarlyConfig { email?: string; s2Key?: string; ncbiKey?: string; openalexKey?: string; maxResults: number; maxContentChars: number; } export declare const ScholarlyConfig: Schema; s2Key: Schema; ncbiKey: Schema; openalexKey: Schema; maxResults: Schema; maxContentChars: Schema; }>>, Schemastery.ObjectT; s2Key: Schema; ncbiKey: Schema; openalexKey: Schema; maxResults: Schema; maxContentChars: Schema; }>>, "plain">; export declare const ScholarlyConfigSchema: Schema; s2Key: Schema; ncbiKey: Schema; openalexKey: Schema; maxResults: Schema; maxContentChars: Schema; }>>, Schemastery.ObjectT; s2Key: Schema; ncbiKey: Schema; openalexKey: Schema; maxResults: Schema; maxContentChars: Schema; }>>, "plain">; /** * Project one live config section into the plain values the tools read. * * Bounds are **not** re-applied here: the schema already refused anything * outside them at commit time, and a direct construction path (a test, an * embedder) is expected to supply values it validated itself. * @param input - the live section, as the loader delivered it. * @returns the resolved values. */ export declare function resolveScholarlyConfig(input?: Partial): ResolvedScholarlyConfig; //# sourceMappingURL=config.d.ts.map