import type { ConfigManager } from '../../config/manager.js';
export interface SandboxDoctorCheck {
    readonly label: string;
    readonly ok: boolean;
    readonly detail: string;
}
export interface SandboxGuestBundle {
    readonly version: 1;
    readonly exportedAt: number;
    readonly guest: {
        readonly qemuBinary: string;
        readonly imagePath: string;
        readonly wrapperPath: string;
        readonly host: string;
        readonly port: number;
        readonly user: string;
        readonly workspacePath: string;
        readonly sessionMode: string;
    };
    readonly nextSteps: readonly string[];
}
export interface SandboxQemuInitBundle {
    readonly directory: string;
    readonly wrapperPath: string;
    readonly guestBundlePath: string;
    readonly readmePath: string;
}
export interface SandboxQemuSetupBundle extends SandboxQemuInitBundle {
    readonly imagePath: string;
    readonly imageCreateScriptPath: string;
    readonly guestBootstrapScriptPath: string;
    readonly projectionPolicyPath: string;
    readonly sshConfigPath: string;
    readonly manifestPath: string;
}
export interface SandboxQemuSetupManifest {
    readonly version: 1;
    readonly createdAt: number;
    readonly wrapperPath: string;
    readonly imagePath: string;
    readonly imageCreateScriptPath: string;
    readonly guestBootstrapScriptPath: string;
    readonly projectionPolicyPath: string;
    readonly sshConfigPath: string;
    readonly recommendedSettings: {
        readonly backend: 'qemu';
        readonly wrapperPath: string;
        readonly imagePath: string;
        readonly guestHost: string;
        readonly guestPort: number;
        readonly guestUser: string;
        readonly guestWorkspacePath: string;
        readonly sessionMode: string;
    };
}
export declare function buildSandboxDoctorChecks(manager: ConfigManager): SandboxDoctorCheck[];
export declare function renderSandboxDoctor(manager: ConfigManager): string;
export declare function exportSandboxGuestBundle(manager: ConfigManager, workspaceRoot: string, pathArg: string): {
    path: string;
    bundle: SandboxGuestBundle;
};
export declare function inspectSandboxGuestBundle(bundle: SandboxGuestBundle): string;
export declare function scaffoldSandboxQemuInitBundle(manager: ConfigManager, workspaceRoot: string, pathArg: string): SandboxQemuInitBundle;
export declare function scaffoldSandboxQemuSetupBundle(manager: ConfigManager, workspaceRoot: string, pathArg: string): SandboxQemuSetupBundle;
export declare function createSandboxQemuImage(workspaceRoot: string, imagePathArg: string, sizeGb: number, qemuImgBinary?: string): {
    path: string;
    sizeGb: number;
};
export declare function bootstrapSandboxQemuSetupBundle(manager: ConfigManager, workspaceRoot: string, pathArg: string, sizeGb: number): SandboxQemuSetupBundle;
export declare function inspectSandboxQemuSetupManifest(manifest: SandboxQemuSetupManifest): string;
export declare function loadSandboxQemuSetupManifest(workspaceRoot: string, pathArg: string): SandboxQemuSetupManifest;
export declare function applySandboxQemuSetupManifest(manager: ConfigManager, manifest: SandboxQemuSetupManifest): void;
//# sourceMappingURL=provisioning.d.ts.map