/** * config.ts * * Shared config loading for Pi extensions. * * Lives here (not in src/index.ts) so extensions can import it without * creating a circular dependency — src/index.ts imports from extensions, * so extensions must not import back from src/index.ts. */ export interface PiscesConfig { student?: { name?: string; year_of_study?: number; timezone?: string; }; explanations?: { default_depth?: "beginner" | "intermediate" | "advanced"; prefer_visuals?: boolean; use_analogies?: boolean; }; integrity?: { enabled?: boolean; strictness?: "strict" | "balanced" | "relaxed"; }; productivity?: { burnout_nudges?: boolean; session_warning_minutes?: number; weekly_summary?: boolean; }; model?: { default?: string; quick?: string; }; workspace?: { customPaths?: string[]; }; } export declare function getConfigSearchPaths(): string[]; export declare function deepMerge(base: T, override: Partial): T; /** * Validates a merged PiscesConfig against the schema constraints. * Invalid fields are replaced by their default values. * All violations are reported together via console.warn — never throws. */ export declare function validateConfig(config: PiscesConfig, defaults: PiscesConfig): PiscesConfig; /** * Loads and merges user config over package defaults. * Never throws — falls back to defaults on any read/parse error. */ export declare function loadConfig(): PiscesConfig; //# sourceMappingURL=config.d.ts.map