/**
 * Persona Installer
 *
 * This module handles the installation of personas from both folder paths and .htp archives
 * into the standard personas directory. It provides atomic operations with rollback
 * capabilities and comprehensive validation.
 *
 * @fileoverview Persona installation and management functionality
 */
import type { PersonaReference } from "./types.js";
/**
 * Installation options
 */
export interface InstallOptions {
    /** Whether to overwrite existing personas */
    force?: boolean;
    /** Whether to validate before installation */
    skipValidation?: boolean;
    /** Whether to create backup of existing persona */
    backup?: boolean;
    /** Custom installation directory (defaults to standard personas directory) */
    installDir?: string;
}
/**
 * Installation result
 */
export interface InstallResult {
    /** Installation success status */
    success: boolean;
    /** Name of installed persona */
    personaName?: string;
    /** Final installation path */
    installPath?: string;
    /** Backup path if backup was created */
    backupPath?: string;
    /** Any warnings encountered */
    warnings: string[];
    /** Any errors encountered */
    errors: string[];
    /** Whether this was an overwrite operation */
    wasOverwrite: boolean;
}
/**
 * Installation source type detection
 */
export declare enum SourceType {
    FOLDER = "folder",
    ARCHIVE = "archive"
}
/**
 * Installation source info
 */
export interface SourceInfo {
    /** Path to source */
    path: string;
    /** Source type */
    type: SourceType;
    /** Persona name if detectable */
    personaName?: string;
    /** Whether source exists and is accessible */
    accessible: boolean;
}
/**
 * Get the configured personas installation directory
 */
export declare function getStandardPersonasDir(): string;
/**
 * Analyze installation source to determine type and basic info
 */
export declare function analyzeSource(sourcePath: string): Promise<SourceInfo>;
/**
 * Check if a persona with the given name already exists
 */
export declare function checkPersonaExists(personaName: string, installDir?: string): Promise<boolean>;
/**
 * Install a persona from a source path (folder or archive)
 */
export declare function installPersona(sourcePath: string, options?: InstallOptions): Promise<InstallResult>;
/**
 * List all installed personas
 */
export declare function listInstalledPersonas(installDir?: string): Promise<PersonaReference[]>;
/**
 * Uninstall a persona by name
 */
export declare function uninstallPersona(personaName: string, installDir?: string, createBackup?: boolean): Promise<InstallResult>;
//# sourceMappingURL=installer.d.ts.map