import { loadManifest } from '../install/manifest.js';
import { type StopAllNexusProcessesOptions } from '../install/process-cleanup.js';
export interface UninstallOptions {
    dryRun: boolean;
    all?: boolean;
    purge?: boolean;
    purgeAll?: boolean;
    yes: boolean;
    workspaceRoot?: string;
    _forceYes?: boolean;
    _processCleanup?: StopAllNexusProcessesOptions;
}
export interface UninstallReport {
    dryRun: boolean;
    purgeAll: boolean;
    daemonsKilled: number;
    lockfilesRemoved: number;
    registrationsRemoved: number;
    filesRemoved: number;
    dirsRemoved: number;
    bytesReclaimed: number;
    leftovers: string[];
    errors: string[];
    ok: boolean;
}
export interface UnregisterReport {
    registrationsRemoved: number;
    errors: string[];
    reports: Array<{
        filePath: string;
        jsonPath: string[];
        removed: boolean;
        reason?: string;
    }>;
}
export declare function runUninstall(options: UninstallOptions): Promise<UninstallReport>;
export declare function unregisterNexusRegistrations(options?: {
    workspaceRoot?: string;
    dryRun?: boolean;
    manifest?: ReturnType<typeof loadManifest>;
}): UnregisterReport;
