import type { Installation, Component, InstallTarget, TemplateType } from '../types/config.js'; export interface InstallStep { id: string; type: 'create-dir' | 'copy-file' | 'install-dependency' | 'configure'; description: string; source?: string; target: string; component?: Component; metadata?: Record; } export interface InstallPlan { steps: InstallStep[]; components: Component[]; target: InstallTarget; directories: string[]; backupPaths: string[]; estimatedDuration: number; warnings: string[]; } export interface InstallProgress { totalSteps: number; completedSteps: number; currentStep?: InstallStep; phase: 'planning' | 'validating' | 'installing' | 'configuring' | 'complete' | 'failed'; message: string; warnings: string[]; errors: string[]; } export interface InstallResult { success: boolean; installedComponents: Component[]; modifiedFiles: string[]; createdDirectories: string[]; backupFiles: string[]; warnings: string[]; errors: string[]; duration: number; } export interface InstallOptions { dryRun?: boolean; force?: boolean; backup?: boolean; interactive?: boolean; installDependencies?: boolean; template?: TemplateType; customPath?: string; onProgress?: (progress: InstallProgress) => void; onPromptStart?: () => void; onPromptEnd?: () => void; } export declare function createInstallPlan(installation: Installation, options?: InstallOptions): Promise; export declare function validateInstallPlan(plan: InstallPlan): Promise; export declare function simulateInstallation(plan: InstallPlan, options?: InstallOptions): Promise; export declare function executeInstallation(plan: InstallPlan, options?: InstallOptions): Promise; export declare class Installer { private logger; private options; constructor(options?: InstallOptions); install(installation: Installation): Promise; createDefaultInstallation(target?: InstallTarget): Promise; private reportProgress; } export declare function installComponents(components: Component[], target?: InstallTarget, options?: InstallOptions): Promise; //# sourceMappingURL=installer.d.ts.map