export interface InstallManifest {
    version: 1;
    installedAt: string;
    settingsPath: string;
    backupPath: string;
    profiles: ProfilePatch[];
}
export interface ProfilePatch {
    guid: string;
    name: string;
    originalCommandline: string | null;
    installedCommandline: string;
}
export interface InstallResult {
    settingsPath: string;
    backupPath: string;
    patched: ProfilePatch[];
    skipped: Array<{
        name: string;
        reason: string;
    }>;
    alreadyInstalled: boolean;
}
export interface UninstallResult {
    restored: Array<{
        name: string;
        guid: string;
    }>;
    notInstalled: boolean;
}
export declare class TerminalInstaller {
    private splitgameDir;
    private manifestPath;
    private settingsSearchPaths;
    constructor(options?: {
        splitgameDir?: string;
        settingsSearchPaths?: string[];
    });
    findSettingsFile(): string | null;
    install(): InstallResult;
    uninstall(): UninstallResult;
    getManifest(): InstallManifest | null;
    private isSettingsPatched;
    private resolveProfileCommand;
    private resolveSourceCommand;
    private resolveVsCommand;
    private findVsInstallations;
    private resolveEspIdfCommand;
    private getSkipReason;
    private friendlySourceReason;
    private buildWrappedCommand;
    private isPowerShellExe;
    private findProfileBounds;
    private replaceCommandlineInProfile;
    private insertCommandlineInProfile;
    private removeCommandlineFromProfile;
    private ensureSplitgameInPath;
    private cleanOldBackups;
    private ensureDir;
}
