import { type Config } from '../types/config.schema.js'; /** * Configuration loader with TypeScript config file support * Loads and validates .hublaunch/hublaunch.config.ts or uses defaults */ /** * Build the actionable, shared error message used when an existing config file * cannot be turned into a usable config object (the import threw, or it resolved * to a module that exposes no `config`/`default` object — e.g. a CommonJS * `module.exports` file in an ESM project). Both `ConfigLoader` and the readers * in `scripts/lib/read-config.ts` use this builder so the wording stays in sync. * * Defaults are used ONLY when no config file exists; an existing-but-unusable * config is a loud, fatal error — never a silent fall back to defaults. */ export declare function configLoadMismatchMessage(configPath: string, detail?: string): string; export declare class ConfigLoader { private projectRoot; private configPath; private config; constructor(projectRoot?: string); /** * Load configuration from file or use defaults */ load(): Promise; /** * One-shot per-process migration: rename legacy * `.hublaunch/trackedIssues.json` → `.hublaunch/trackedPlans.json` and * transform contents to the new schema. Errors are warned, not fatal. */ private migrationDone; private runLocalFileMigration; /** * Apply defaults for optional fields */ private applyDefaults; /** * Resolve relative paths to absolute paths based on project root */ private resolvePaths; /** * Get current config (loads if not already loaded) */ get(): Promise; /** * Reload configuration from file */ reload(): Promise; } /** * Get or create ConfigLoader instance */ export declare function getConfigLoader(projectRoot?: string): ConfigLoader; /** * Load configuration */ export declare function loadConfig(projectRoot?: string): Promise; //# sourceMappingURL=index.d.ts.map