/** * Template Sync Engine * * Main orchestrator for template synchronization. * Coordinates comparison, merging, conflict resolution, and manifest updates. */ import type { DatabaseClient } from '../db/client.js'; import { TemplateManifestManager } from './manifest.js'; import type { SyncResult, SyncOptions } from './types.js'; /** * Main template sync orchestrator */ export declare class TemplateSyncEngine { private db; private projectRoot; private templateRoot; private manifestManager; private backupManager; private readonly packageVersion; constructor(db: DatabaseClient, projectRoot?: string, templateRoot?: string); /** * Execute full sync operation * * @param options - Sync options * @returns Sync result */ sync(options?: SyncOptions): Promise; /** * Update manifest after sync * * @param comparisons - File comparisons */ private updateManifest; /** * Update user-modified flags in database * * @param comparisons - File comparisons */ private updateUserModifiedFlags; /** * Archive removed files * * @param filePaths - Relative paths to files * @returns Array of archived file paths */ private archiveRemovedFiles; /** * Check if sync is needed * * @returns true if templates need updating */ needsSync(): Promise; /** * Get current manifest * * @returns Current manifest or null */ getManifest(): Promise>>; /** * Get template version from package * * @returns Package version string */ private getPackageVersion; /** * Get template root path */ getTemplateRoot(): string; /** * Get project root path */ getProjectRoot(): string; /** * Show dry run results * * @param comparisons - File comparisons * @param verbose - Whether to show verbose output */ private showDryRunResults; /** * Get sync status summary * * @returns Status summary */ getStatusSummary(): Promise<{ manifestExists: boolean; templateVersion: string | null; currentVersion: string; needsUpdate: boolean; userModifiedFiles: string[]; }>; } //# sourceMappingURL=engine.d.ts.map