import { z } from 'zod'; /** * Configuration schema for md2do * Supports hierarchical configuration: environment → project → global */ declare const MarkdownConfigSchema: z.ZodOptional; exclude: z.ZodOptional>; pattern: z.ZodOptional; }, "strip", z.ZodTypeAny, { root?: string | undefined; exclude?: string[] | undefined; pattern?: string | undefined; }, { root?: string | undefined; exclude?: string[] | undefined; pattern?: string | undefined; }>>; declare const TodoistConfigSchema: z.ZodOptional; defaultProject: z.ZodOptional; autoSync: z.ZodOptional; syncDirection: z.ZodOptional>; labelMapping: z.ZodOptional>; }, "strip", z.ZodTypeAny, { apiToken?: string | undefined; defaultProject?: string | undefined; autoSync?: boolean | undefined; syncDirection?: "push" | "pull" | "both" | undefined; labelMapping?: Record | undefined; }, { apiToken?: string | undefined; defaultProject?: string | undefined; autoSync?: boolean | undefined; syncDirection?: "push" | "pull" | "both" | undefined; labelMapping?: Record | undefined; }>>; declare const OutputConfigSchema: z.ZodOptional>; colors: z.ZodOptional; paths: z.ZodOptional; }, "strip", z.ZodTypeAny, { format?: "pretty" | "table" | "json" | undefined; colors?: boolean | undefined; paths?: boolean | undefined; }, { format?: "pretty" | "table" | "json" | undefined; colors?: boolean | undefined; paths?: boolean | undefined; }>>; declare const WarningConfigSchema: z.ZodOptional; rules: z.ZodOptional, z.ZodEnum<["error", "warn", "info", "off"]>>>; }, "strip", z.ZodTypeAny, { enabled?: boolean | undefined; rules?: Partial> | undefined; }, { enabled?: boolean | undefined; rules?: Partial> | undefined; }>>; declare const ConfigSchema: z.ZodObject<{ markdown: z.ZodOptional; exclude: z.ZodOptional>; pattern: z.ZodOptional; }, "strip", z.ZodTypeAny, { root?: string | undefined; exclude?: string[] | undefined; pattern?: string | undefined; }, { root?: string | undefined; exclude?: string[] | undefined; pattern?: string | undefined; }>>; defaultAssignee: z.ZodOptional; todoist: z.ZodOptional; defaultProject: z.ZodOptional; autoSync: z.ZodOptional; syncDirection: z.ZodOptional>; labelMapping: z.ZodOptional>; }, "strip", z.ZodTypeAny, { apiToken?: string | undefined; defaultProject?: string | undefined; autoSync?: boolean | undefined; syncDirection?: "push" | "pull" | "both" | undefined; labelMapping?: Record | undefined; }, { apiToken?: string | undefined; defaultProject?: string | undefined; autoSync?: boolean | undefined; syncDirection?: "push" | "pull" | "both" | undefined; labelMapping?: Record | undefined; }>>; output: z.ZodOptional>; colors: z.ZodOptional; paths: z.ZodOptional; }, "strip", z.ZodTypeAny, { format?: "pretty" | "table" | "json" | undefined; colors?: boolean | undefined; paths?: boolean | undefined; }, { format?: "pretty" | "table" | "json" | undefined; colors?: boolean | undefined; paths?: boolean | undefined; }>>; warnings: z.ZodOptional; rules: z.ZodOptional, z.ZodEnum<["error", "warn", "info", "off"]>>>; }, "strip", z.ZodTypeAny, { enabled?: boolean | undefined; rules?: Partial> | undefined; }, { enabled?: boolean | undefined; rules?: Partial> | undefined; }>>; workday: z.ZodOptional; endTime: z.ZodOptional; defaultDueTime: z.ZodOptional>; }, "strip", z.ZodTypeAny, { startTime?: string | undefined; endTime?: string | undefined; defaultDueTime?: "start" | "end" | undefined; }, { startTime?: string | undefined; endTime?: string | undefined; defaultDueTime?: "start" | "end" | undefined; }>>; }, "strip", z.ZodTypeAny, { markdown?: { root?: string | undefined; exclude?: string[] | undefined; pattern?: string | undefined; } | undefined; defaultAssignee?: string | undefined; todoist?: { apiToken?: string | undefined; defaultProject?: string | undefined; autoSync?: boolean | undefined; syncDirection?: "push" | "pull" | "both" | undefined; labelMapping?: Record | undefined; } | undefined; output?: { format?: "pretty" | "table" | "json" | undefined; colors?: boolean | undefined; paths?: boolean | undefined; } | undefined; warnings?: { enabled?: boolean | undefined; rules?: Partial> | undefined; } | undefined; workday?: { startTime?: string | undefined; endTime?: string | undefined; defaultDueTime?: "start" | "end" | undefined; } | undefined; }, { markdown?: { root?: string | undefined; exclude?: string[] | undefined; pattern?: string | undefined; } | undefined; defaultAssignee?: string | undefined; todoist?: { apiToken?: string | undefined; defaultProject?: string | undefined; autoSync?: boolean | undefined; syncDirection?: "push" | "pull" | "both" | undefined; labelMapping?: Record | undefined; } | undefined; output?: { format?: "pretty" | "table" | "json" | undefined; colors?: boolean | undefined; paths?: boolean | undefined; } | undefined; warnings?: { enabled?: boolean | undefined; rules?: Partial> | undefined; } | undefined; workday?: { startTime?: string | undefined; endTime?: string | undefined; defaultDueTime?: "start" | "end" | undefined; } | undefined; }>; type MarkdownConfig = z.infer; type TodoistConfig = z.infer; type OutputConfig = z.infer; type WarningConfig = z.infer; type Config = z.infer; /** * Non-optional warning configuration type for preset definitions * Used when defining hardcoded presets (PRESET_STRICT, PRESET_RECOMMENDED) */ type WarningPreset = { enabled: boolean; rules: Record<'unsupported-bullet' | 'malformed-checkbox' | 'missing-space-after' | 'missing-space-before' | 'relative-date-no-context' | 'missing-due-date' | 'missing-completed-date' | 'duplicate-todoist-id' | 'file-read-error', 'error' | 'warn' | 'info' | 'off'>; }; /** * Default configuration values */ declare const DEFAULT_CONFIG: Config; interface LoadConfigOptions { /** * Directory to start searching for project config * Defaults to process.cwd() */ cwd?: string; /** * Whether to load global config from home directory * Defaults to true */ loadGlobal?: boolean; /** * Whether to load environment variables * Defaults to true */ loadEnv?: boolean; } /** * Load configuration with hierarchical resolution: * 1. Default values * 2. Global config (~/.md2do.json) * 3. Project config (walks up from cwd) * 4. Environment variables * * Later sources override earlier ones. */ declare function loadConfig(options?: LoadConfigOptions): Promise; /** * Validate a configuration object */ declare function validateConfig(config: unknown): Config; /** * Strict preset: All warnings enabled * * Use when you want maximum validation of task metadata. * Enforces complete task information including due dates and completion dates. * * @example * ```json * { * "warnings": "strict" * } * ``` */ declare const PRESET_STRICT: WarningPreset; /** * Recommended preset: Format validation only (DEFAULT) * * Validates markdown syntax is correct, but doesn't enforce * metadata completeness. Metadata is treated as optional/stylistic. * * This is the default configuration used when no config is specified. * * @example * ```json * { * "warnings": "recommended" * } * ``` */ declare const PRESET_RECOMMENDED: WarningPreset; /** * Get a preset configuration by name * * @param name - Preset name ('strict' | 'recommended') * @returns Warning configuration for the preset */ declare function getPreset(name: 'strict' | 'recommended'): WarningConfig; export { type Config, ConfigSchema, DEFAULT_CONFIG, type LoadConfigOptions, type MarkdownConfig, MarkdownConfigSchema, type OutputConfig, OutputConfigSchema, PRESET_RECOMMENDED, PRESET_STRICT, type TodoistConfig, TodoistConfigSchema, type WarningConfig, WarningConfigSchema, type WarningPreset, getPreset, loadConfig, validateConfig };