/** * Configuration schema using Zod */ import { z } from "zod"; /** * Log level schema */ export declare const logLevelSchema: z.ZodEnum<{ silent: "silent"; info: "info"; debug: "debug"; }>; /** * TUI (interactive) search configuration schema */ export declare const tuiConfigSchema: z.ZodObject<{ limit: z.ZodNumber; debounceMs: z.ZodNumber; clipboardAutoCopy: z.ZodBoolean; }, z.core.$strip>; /** * Edit format schema */ export declare const editFormatSchema: z.ZodEnum<{ yaml: "yaml"; json: "json"; }>; /** * Edit command configuration schema */ export declare const editConfigSchema: z.ZodObject<{ defaultFormat: z.ZodEnum<{ yaml: "yaml"; json: "json"; }>; }, z.core.$strip>; /** * CLI configuration schema */ export declare const cliConfigSchema: z.ZodObject<{ defaultLimit: z.ZodNumber; defaultSort: z.ZodEnum<{ title: "title"; author: "author"; updated: "updated"; created: "created"; published: "published"; }>; defaultOrder: z.ZodEnum<{ asc: "asc"; desc: "desc"; }>; tui: z.ZodObject<{ limit: z.ZodNumber; debounceMs: z.ZodNumber; clipboardAutoCopy: z.ZodBoolean; }, z.core.$strip>; edit: z.ZodObject<{ defaultFormat: z.ZodEnum<{ yaml: "yaml"; json: "json"; }>; }, z.core.$strip>; }, z.core.$strip>; /** * MCP configuration schema */ export declare const mcpConfigSchema: z.ZodObject<{ defaultLimit: z.ZodNumber; }, z.core.$strip>; /** * Backup configuration schema */ export declare const backupConfigSchema: z.ZodObject<{ maxGenerations: z.ZodNumber; maxAgeDays: z.ZodNumber; directory: z.ZodString; }, z.core.$strip>; /** * File watching configuration schema * Note: File watching is always enabled in server mode (HTTP/MCP). * CLI mode does not use file watching. */ export declare const watchConfigSchema: z.ZodObject<{ debounceMs: z.ZodNumber; pollIntervalMs: z.ZodNumber; retryIntervalMs: z.ZodNumber; maxRetries: z.ZodNumber; usePolling: z.ZodBoolean; }, z.core.$strip>; /** * Server configuration schema */ export declare const serverConfigSchema: z.ZodObject<{ autoStart: z.ZodBoolean; autoStopMinutes: z.ZodNumber; }, z.core.$strip>; /** * Citation format schema */ export declare const citationFormatSchema: z.ZodEnum<{ text: "text"; html: "html"; rtf: "rtf"; }>; /** * Citation key format schema */ export declare const citationKeyFormatSchema: z.ZodEnum<{ pandoc: "pandoc"; latex: "latex"; }>; /** * Citation configuration schema */ export declare const citationConfigSchema: z.ZodObject<{ defaultStyle: z.ZodString; cslDirectory: z.ZodArray; defaultLocale: z.ZodString; defaultFormat: z.ZodEnum<{ text: "text"; html: "html"; rtf: "rtf"; }>; defaultKeyFormat: z.ZodEnum<{ pandoc: "pandoc"; latex: "latex"; }>; }, z.core.$strip>; /** * PubMed API configuration schema */ export declare const pubmedConfigSchema: z.ZodObject<{ email: z.ZodOptional; apiKey: z.ZodOptional; }, z.core.$strip>; /** * Fulltext source enum schema */ export declare const fulltextSourceSchema: z.ZodEnum<{ pmc: "pmc"; arxiv: "arxiv"; unpaywall: "unpaywall"; core: "core"; }>; declare const fulltextPreferredTypeSchema: z.ZodEnum<{ pdf: "pdf"; markdown: "markdown"; }>; /** * Fulltext retrieval configuration schema */ /** * Custom converter configuration schema */ export declare const customConverterSchema: z.ZodObject<{ command: z.ZodString; outputMode: z.ZodOptional>; checkCommand: z.ZodOptional; timeout: z.ZodOptional; progress: z.ZodOptional>; commandWindows: z.ZodOptional; checkCommandWindows: z.ZodOptional; }, z.core.$strip>; export declare const fulltextConfigSchema: z.ZodObject<{ preferSources: z.ZodArray>; preferredType: z.ZodOptional>; autoFetchOnAdd: z.ZodBoolean; pdfConverter: z.ZodString; pdfConverterPriority: z.ZodArray; pdfConverterTimeout: z.ZodNumber; converters: z.ZodRecord>; checkCommand: z.ZodOptional; timeout: z.ZodOptional; progress: z.ZodOptional>; commandWindows: z.ZodOptional; checkCommandWindows: z.ZodOptional; }, z.core.$strip>>; sources: z.ZodObject<{ unpaywallEmail: z.ZodOptional; coreApiKey: z.ZodOptional; ncbiEmail: z.ZodOptional; ncbiTool: z.ZodOptional; }, z.core.$strip>; }, z.core.$strip>; /** * URL import archive format schema */ export declare const urlArchiveFormatSchema: z.ZodEnum<{ html: "html"; mhtml: "mhtml"; }>; /** * URL import configuration schema */ export declare const urlConfigSchema: z.ZodObject<{ archiveFormat: z.ZodEnum<{ html: "html"; mhtml: "mhtml"; }>; browserPath: z.ZodString; timeout: z.ZodNumber; }, z.core.$strip>; /** * Attachments storage configuration schema */ export declare const attachmentsConfigSchema: z.ZodObject<{ directory: z.ZodString; }, z.core.$strip>; /** * Complete configuration schema */ export declare const configSchema: z.ZodObject<{ library: z.ZodString; logLevel: z.ZodEnum<{ silent: "silent"; info: "info"; debug: "debug"; }>; email: z.ZodOptional; backup: z.ZodObject<{ maxGenerations: z.ZodNumber; maxAgeDays: z.ZodNumber; directory: z.ZodString; }, z.core.$strip>; watch: z.ZodObject<{ debounceMs: z.ZodNumber; pollIntervalMs: z.ZodNumber; retryIntervalMs: z.ZodNumber; maxRetries: z.ZodNumber; usePolling: z.ZodBoolean; }, z.core.$strip>; server: z.ZodObject<{ autoStart: z.ZodBoolean; autoStopMinutes: z.ZodNumber; }, z.core.$strip>; citation: z.ZodObject<{ defaultStyle: z.ZodString; cslDirectory: z.ZodArray; defaultLocale: z.ZodString; defaultFormat: z.ZodEnum<{ text: "text"; html: "html"; rtf: "rtf"; }>; defaultKeyFormat: z.ZodEnum<{ pandoc: "pandoc"; latex: "latex"; }>; }, z.core.$strip>; pubmed: z.ZodObject<{ email: z.ZodOptional; apiKey: z.ZodOptional; }, z.core.$strip>; fulltext: z.ZodObject<{ preferSources: z.ZodArray>; preferredType: z.ZodOptional>; autoFetchOnAdd: z.ZodBoolean; pdfConverter: z.ZodString; pdfConverterPriority: z.ZodArray; pdfConverterTimeout: z.ZodNumber; converters: z.ZodRecord>; checkCommand: z.ZodOptional; timeout: z.ZodOptional; progress: z.ZodOptional>; commandWindows: z.ZodOptional; checkCommandWindows: z.ZodOptional; }, z.core.$strip>>; sources: z.ZodObject<{ unpaywallEmail: z.ZodOptional; coreApiKey: z.ZodOptional; ncbiEmail: z.ZodOptional; ncbiTool: z.ZodOptional; }, z.core.$strip>; }, z.core.$strip>; attachments: z.ZodObject<{ directory: z.ZodString; }, z.core.$strip>; url: z.ZodObject<{ archiveFormat: z.ZodEnum<{ html: "html"; mhtml: "mhtml"; }>; browserPath: z.ZodString; timeout: z.ZodNumber; }, z.core.$strip>; cli: z.ZodObject<{ defaultLimit: z.ZodNumber; defaultSort: z.ZodEnum<{ title: "title"; author: "author"; updated: "updated"; created: "created"; published: "published"; }>; defaultOrder: z.ZodEnum<{ asc: "asc"; desc: "desc"; }>; tui: z.ZodObject<{ limit: z.ZodNumber; debounceMs: z.ZodNumber; clipboardAutoCopy: z.ZodBoolean; }, z.core.$strip>; edit: z.ZodObject<{ defaultFormat: z.ZodEnum<{ yaml: "yaml"; json: "json"; }>; }, z.core.$strip>; }, z.core.$strip>; mcp: z.ZodObject<{ defaultLimit: z.ZodNumber; }, z.core.$strip>; }, z.core.$strip>; /** * Partial configuration schema (for TOML files) * Supports both camelCase and snake_case field names */ export declare const partialConfigSchema: z.ZodObject<{ library: z.ZodOptional; logLevel: z.ZodOptional>; log_level: z.ZodOptional>; email: z.ZodOptional; backup: z.ZodOptional; max_generations: z.ZodOptional; maxAgeDays: z.ZodOptional; max_age_days: z.ZodOptional; directory: z.ZodOptional; }, z.core.$strip>>; watch: z.ZodOptional; debounce_ms: z.ZodOptional; pollIntervalMs: z.ZodOptional; poll_interval_ms: z.ZodOptional; retryIntervalMs: z.ZodOptional; retry_interval_ms: z.ZodOptional; maxRetries: z.ZodOptional; max_retries: z.ZodOptional; usePolling: z.ZodOptional; use_polling: z.ZodOptional; }, z.core.$strip>>; server: z.ZodOptional; auto_start: z.ZodOptional; autoStopMinutes: z.ZodOptional; auto_stop_minutes: z.ZodOptional; }, z.core.$strip>>; citation: z.ZodOptional; default_style: z.ZodOptional; cslDirectory: z.ZodOptional]>>; csl_directory: z.ZodOptional]>>; defaultLocale: z.ZodOptional; default_locale: z.ZodOptional; defaultFormat: z.ZodOptional>; default_format: z.ZodOptional>; defaultKeyFormat: z.ZodOptional>; default_key_format: z.ZodOptional>; }, z.core.$strip>>; pubmed: z.ZodOptional; apiKey: z.ZodOptional; api_key: z.ZodOptional; }, z.core.$strip>>; fulltext: z.ZodOptional>>; prefer_sources: z.ZodOptional>>; preferredType: z.ZodOptional>; preferred_type: z.ZodOptional>; autoFetchOnAdd: z.ZodOptional; auto_fetch_on_add: z.ZodOptional; pdfConverter: z.ZodOptional; pdf_converter: z.ZodOptional; pdfConverterPriority: z.ZodOptional>; pdf_converter_priority: z.ZodOptional>; pdfConverterTimeout: z.ZodOptional; pdf_converter_timeout: z.ZodOptional; converters: z.ZodOptional, z.ZodRecord; outputMode: z.ZodOptional>; output_mode: z.ZodOptional>; checkCommand: z.ZodOptional; check_command: z.ZodOptional; timeout: z.ZodOptional; progress: z.ZodOptional>; commandWindows: z.ZodOptional; command_windows: z.ZodOptional; checkCommandWindows: z.ZodOptional; check_command_windows: z.ZodOptional; }, z.core.$strip>>>>; sources: z.ZodOptional; unpaywall_email: z.ZodOptional; coreApiKey: z.ZodOptional; core_api_key: z.ZodOptional; ncbiEmail: z.ZodOptional; ncbi_email: z.ZodOptional; ncbiTool: z.ZodOptional; ncbi_tool: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; attachments: z.ZodOptional; }, z.core.$strip>>; url: z.ZodOptional>; archive_format: z.ZodOptional>; browserPath: z.ZodOptional; browser_path: z.ZodOptional; timeout: z.ZodOptional; }, z.core.$strip>>; cli: z.ZodOptional; default_limit: z.ZodOptional; defaultSort: z.ZodOptional>; default_sort: z.ZodOptional>; defaultOrder: z.ZodOptional>; default_order: z.ZodOptional>; tui: z.ZodOptional; debounceMs: z.ZodOptional; debounce_ms: z.ZodOptional; clipboardAutoCopy: z.ZodOptional; clipboard_auto_copy: z.ZodOptional; }, z.core.$strip>>; edit: z.ZodOptional>; default_format: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>>; mcp: z.ZodOptional; default_limit: z.ZodOptional; }, z.core.$strip>>; }, z.core.$loose>; /** * Inferred types from schemas */ export type LogLevel = z.infer; export type BackupConfig = z.infer; export type WatchConfig = z.infer; export type ServerConfig = z.infer; export type CitationFormat = z.infer; export type CitationKeyFormat = z.infer; export type CitationConfig = z.infer; export type PubmedConfig = z.infer; export type FulltextSource = z.infer; export type FulltextPreferredType = z.infer; export type FulltextConfig = z.infer; export type AttachmentsConfig = z.infer; export type UrlArchiveFormat = z.infer; export type UrlConfig = z.infer; export type TuiConfig = z.infer; export type EditConfigFormat = z.infer; export type EditConfig = z.infer; export type CliConfig = z.infer; export type McpConfig = z.infer; export type Config = z.infer; export type PartialConfig = z.infer; /** * Deep partial type for Config */ export type DeepPartialConfig = { library?: string; logLevel?: LogLevel; email?: string; backup?: Partial; watch?: Partial; server?: Partial; citation?: Partial; pubmed?: Partial; fulltext?: Partial> & { sources?: Partial; converters?: FulltextConfig["converters"]; }; attachments?: Partial; url?: Partial; cli?: Partial> & { tui?: Partial; edit?: Partial; }; mcp?: Partial; }; /** * Normalize snake_case fields to camelCase */ export declare function normalizePartialConfig(partial: PartialConfig): DeepPartialConfig; export {}; //# sourceMappingURL=schema.d.ts.map