/** * Centralized schema path resolution and global schema management. * * This module is the SINGLE source of truth for resolving schema file * paths at runtime. Both schema-integrity.ts and schema-validator.ts * should delegate to this module instead of maintaining their own * resolveSchemaPath() implementations. * * Resolution priority: * 1. ~/.cleo/schemas/{name} (global install via getCleoSchemasDir) * 2. Package schemas/{name} (bundled fallback via getPackageRoot) */ export interface SchemaInstallResult { installed: number; updated: number; total: number; } export interface StalenessReport { stale: string[]; current: string[]; missing: string[]; } export interface InstalledSchema { name: string; path: string; version: string | null; } export interface CheckResult { ok: boolean; installed: number; bundled: number; missing: string[]; stale: string[]; } /** * Resolve the absolute path to a schema file at runtime. * * Priority: * 1. Global install: ~/.cleo/schemas/{schemaName} * 2. Package bundled: /schemas/{schemaName} * * @param schemaName - Filename of the schema (e.g. "config.schema.json") * @returns Absolute path to the schema file, or null if not found */ export declare function resolveSchemaPath(schemaName: string): string | null; /** * Read the schema version from a resolved schema file. * * Checks `schemaVersion` (top-level) and `_meta.schemaVersion` (canonical). * * @param schemaName - Filename of the schema (e.g. "config.schema.json") * @returns The version string, or null if not found or unreadable */ export declare function getSchemaVersion(schemaName: string): string | null; /** * Copy ALL bundled schemas from package schemas/ to ~/.cleo/schemas/. * * - Creates the global schemas directory if it doesn't exist. * - Skips files that are already up-to-date (same version). * - Overwrites stale files (version mismatch). * * @param opts - Optional settings (currently unused, reserved for future options) * @returns Summary of installed, updated, and total schemas */ export declare function ensureGlobalSchemas(_opts?: Record): SchemaInstallResult; /** * Verify that global schemas are installed and not stale. * * @returns Check result with counts and lists of issues */ export declare function checkGlobalSchemas(): CheckResult; /** * Compare global schema versions against bundled package versions. * * @returns Report of stale, current, and missing schemas */ export declare function checkSchemaStaleness(): StalenessReport; /** * List all schemas installed in ~/.cleo/schemas/. * * @returns Array of installed schema details */ export declare function listInstalledSchemas(): InstalledSchema[]; /** * Backup and remove deprecated .cleo/schemas/ directory from a project. * * Schemas should live in ~/.cleo/schemas/ (global) not in project directories. * This function creates a backup before removal for safety. * * @param projectRoot - Absolute path to the project root * @returns Whether cleanup was performed */ export declare function cleanProjectSchemas(projectRoot: string): Promise<{ cleaned: boolean; }>; //# sourceMappingURL=schema-management.d.ts.map