import { buildWindowsProcessTreeLauncherAuditEnvelope, type WindowsSkillSandboxAvailability } from "./windows-skill-sandbox.js";
export type SkillSandboxOrigin = "community" | "first-party" | "official";
export type SkillSandboxRiskTier = "R0" | "R1" | "R2" | "R3" | "unknown";
export type SkillSandboxDecisionReason = "first-party-action" | "community-low-risk" | "manual-run" | "l0-available" | "l0-unavailable" | "launcher-required" | "launcher-unavailable";
export interface SkillSandboxAvailability extends WindowsSkillSandboxAvailability {
}
export interface SkillSandboxRunRequest {
    origin: SkillSandboxOrigin;
    official?: boolean;
    riskTier?: SkillSandboxRiskTier;
    autoRun?: boolean;
    executable?: boolean;
}
export interface SkillSandboxLauncherDecisionMetadata {
    level: "L0";
    mode: "os-native-launcher";
    defaultHostAccess: true;
    noFsNetworkRestriction: true;
    audit: {
        envelope: "l0-launcher-audit-v1";
        subject: {
            origin: SkillSandboxOrigin;
            official: boolean;
            executable: boolean;
            autoRun: boolean;
        };
        decision: "allowed" | "blocked";
        reason: "launcher-required" | "launcher-unavailable";
    };
    windows?: ReturnType<typeof buildWindowsProcessTreeLauncherAuditEnvelope>;
}
export interface SkillSandboxDecision {
    allowed: boolean;
    spawnAllowed: boolean;
    launcherRequired: boolean;
    reason: SkillSandboxDecisionReason;
    backend: "first-party" | "community-l1-l2" | "community-l0" | "community-l0-launcher";
    l0: SkillSandboxAvailability;
    launcher?: SkillSandboxLauncherDecisionMetadata;
}
export interface SkillSandbox {
    getAvailability(): SkillSandboxAvailability;
    decide(request: SkillSandboxRunRequest): SkillSandboxDecision;
}
export interface SkillSandboxOptions {
    availability?: SkillSandboxAvailability;
    platform?: string;
    appContainerAvailable?: boolean;
    jobObjectAvailable?: boolean;
    processTreeLauncherAvailable?: boolean;
}
export declare function createSkillSandbox(options?: SkillSandboxOptions): SkillSandbox;
export declare function createDefaultSkillSandbox(): SkillSandbox;
