import type { SandboxProviderFamily, SandboxSpec } from "../runtimeAgentManifest.js";
export type SandboxRuntimeProviderStatus = "available" | "missingDependency" | "contractOnly" | "unsupportedPlatform" | "smokeFailed";
export type SandboxRuntimeProviderAction = "none" | "installDependency" | "chooseDifferentProfile" | "routeRemoteWorker" | "manualProviderSetup";
export type SandboxRuntimeProviderProbe = {
    providerFamily: SandboxProviderFamily;
    profile: SandboxSpec["profile"];
    status: SandboxRuntimeProviderStatus;
    platform: NodeJS.Platform;
    dependencyRefs: readonly string[];
    availableDependencies: readonly string[];
    missingDependencies: readonly string[];
    dependencyChecks: readonly SandboxRuntimeDependencyCheck[];
    dependencyInstallEnvelopes: readonly SandboxRuntimeDependencyInstallEnvelope[];
    selfRepairHints: readonly SandboxRuntimeSelfRepairHint[];
    nextAction: SandboxRuntimeProviderAction;
    publicSafeMessage: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type SandboxRuntimeDependencyInstallEnvelope = {
    envelopeId: string;
    dependencyId: string;
    providerFamily: SandboxProviderFamily;
    action: "installDependency";
    installTarget: "system-global" | "provider-managed" | "manual";
    commandPreview: readonly string[];
    requiresApproval: true;
    approvalSurface: "interface/application";
    publicSafe: true;
    message: string;
};
export type SandboxRuntimeDependencyCheck = {
    dependencyId: string;
    required: boolean;
    status: "available" | "missing" | "unknown" | "contractOnly";
    source: "binary" | "kernel" | "linux-security" | "container-runtime" | "platform" | "remote" | "custom";
    installTarget: "system-global" | "provider-managed" | "manual" | "none";
    publicSafeMessage: string;
};
export type SandboxRuntimeSelfRepairHint = {
    hintId: string;
    severity: "info" | "warning" | "error";
    action: SandboxRuntimeProviderAction;
    message: string;
    commandPreview?: readonly string[];
    requiresApproval: boolean;
};
export type SandboxRuntimeSmokeResult = {
    providerFamily: SandboxProviderFamily;
    profile: SandboxSpec["profile"];
    status: "passed" | "skipped" | "failed";
    commandPreview: readonly string[];
    checks?: readonly SandboxRuntimeSmokeCheck[];
    stdout?: string;
    stderr?: string;
    publicSafeMessage: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type SandboxRuntimeSmokeCheck = {
    checkId: string;
    status: "passed" | "failed" | "skipped";
    publicSafeMessage: string;
};
export type SandboxRuntimePrepareResult = {
    providerFamily: SandboxProviderFamily;
    profile: SandboxSpec["profile"];
    ready: boolean;
    probe: SandboxRuntimeProviderProbe;
    smoke?: SandboxRuntimeSmokeResult;
    events: readonly string[];
};
export type SandboxRuntimeProvider = {
    providerFamily: SandboxProviderFamily;
    probe(spec: SandboxSpec): Promise<SandboxRuntimeProviderProbe>;
    prepare(spec: SandboxSpec, input?: {
        cwd?: string;
        runSmoke?: boolean;
    }): Promise<SandboxRuntimePrepareResult>;
    runSmoke(spec: SandboxSpec, input?: {
        cwd?: string;
    }): Promise<SandboxRuntimeSmokeResult>;
    explainUnavailable(probe: SandboxRuntimeProviderProbe): string;
};
export declare const sandboxRuntimeProviderDescriptor: {
    readonly surface: "runtime.sandboxPlane";
    readonly capability: "sandboxRuntimeProvider";
    readonly purpose: "probe, prepare, and smoke-test SandboxSpec providers without bypassing runtime governance";
    readonly linuxLiveProvider: "linux-bubblewrap";
    readonly unsafeSideEffects: false;
};
export declare function createSandboxRuntimeProvider(providerFamily: SandboxProviderFamily): SandboxRuntimeProvider;
export declare function prepareSandboxRuntime(spec: SandboxSpec, input?: {
    cwd?: string;
    runSmoke?: boolean;
}): Promise<SandboxRuntimePrepareResult>;
