export type WindowsSkillSandboxBackend = "windows-process-tree-launcher";
export type WindowsProcessTreeLauncherAuditEvent = "launch-requested" | "process-started" | "process-exited" | "tree-kill-requested" | "launch-failed";
export interface WindowsSkillSandboxAvailabilityOptions {
    platform?: string;
    appContainerAvailable?: boolean;
    jobObjectAvailable?: boolean;
    processTreeLauncherAvailable?: boolean;
}
export interface WindowsSkillSandboxAvailability {
    level: "L0";
    available: boolean;
    backend: WindowsSkillSandboxBackend | "unsupported-platform" | "unavailable";
    platform: string;
    reason?: "unsupported-platform" | "windows-l0-not-provisioned";
}
export interface WindowsSandboxLaunchMetadata {
    backend: WindowsSkillSandboxBackend;
    command: string;
    args: string[];
    elevated: false;
    defaultHostAccess: true;
    noFsNetworkRestriction: true;
    jobObject: {
        implemented: false;
        ready: true;
    };
    processTree: {
        killOnClose: true;
        trackChildren: true;
        terminateOnLauncherClose: true;
    };
    audit: {
        envelope: "l0-launcher-audit-v1";
        lifecycle: WindowsProcessTreeLauncherAuditEvent[];
    };
}
export interface WindowsProcessTreeLauncherAuditEnvelope {
    envelope: "l0-launcher-audit-v1";
    backend: WindowsSkillSandboxBackend;
    defaultHostAccess: true;
    noFsNetworkRestriction: true;
    processTree: {
        killOnClose: true;
        trackChildren: true;
    };
    jobObject: {
        implemented: false;
        ready: true;
    };
}
export interface WindowsProcessTreeChild {
    pid?: number;
}
export interface WindowsProcessTreeLauncherDependencies {
    spawn?: (command: string, args: string[]) => WindowsProcessTreeChild;
    killProcessTree?: (pid: number) => Promise<void> | void;
}
export interface WindowsProcessTreeLaunchRequest {
    command: string;
    args?: string[];
}
export interface WindowsProcessTreeLaunchHandle {
    pid: number;
    metadata: WindowsSandboxLaunchMetadata;
    auditEvents: WindowsProcessTreeLauncherAuditEvent[];
    close(): Promise<void>;
}
export interface WindowsProcessTreeLauncher {
    auditEvents: WindowsProcessTreeLauncherAuditEvent[];
    launch(request: WindowsProcessTreeLaunchRequest): WindowsProcessTreeLaunchHandle;
}
export declare function getWindowsSkillSandboxAvailability(options?: WindowsSkillSandboxAvailabilityOptions): WindowsSkillSandboxAvailability;
export declare function buildWindowsSandboxLaunchMetadata(input: {
    command: string;
    args?: string[];
}): WindowsSandboxLaunchMetadata;
export declare function buildWindowsProcessTreeLauncherAuditEnvelope(): WindowsProcessTreeLauncherAuditEnvelope;
export declare function createWindowsProcessTreeLauncher(dependencies?: WindowsProcessTreeLauncherDependencies): WindowsProcessTreeLauncher;
