export type ShellSandboxEnforcementPermission = "shell:sandbox";
export type ShellSandboxEnforcementBoundary = "input" | "scope" | "permission" | "contract" | "governance" | "provider";
export type ShellSandboxDecision = "enforced" | "requires-approval" | "rejected";
export type ShellSandboxAccessIntent = "read" | "write" | "execute";
export type ShellSandboxEnforcementContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        allowed?: boolean;
        accepted?: boolean;
        reason?: string;
    };
    grantedPermissions?: readonly ShellSandboxEnforcementPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellSandboxEnforcementPolicy = {
    sandboxRoots?: readonly string[];
    allowNetwork?: boolean;
    allowHostEnvironment?: boolean;
    maxPathCount?: number;
};
export type ShellSandboxEnforcementRequest = {
    command?: string;
    workingDirectory?: string;
    requestedPaths?: readonly string[];
    accessIntents?: readonly ShellSandboxAccessIntent[];
    policy?: ShellSandboxEnforcementPolicy;
    context?: ShellSandboxEnforcementContext;
};
export type ShellSandboxEnforcementErrorCode = "MISSING_COMMAND" | "MISSING_WORKING_DIRECTORY" | "MISSING_SANDBOX_ROOT" | "INVALID_ACCESS_INTENT" | "PATH_LIMIT_EXCEEDED" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type ShellSandboxEnforcementError = {
    code: ShellSandboxEnforcementErrorCode;
    message: string;
    boundary: ShellSandboxEnforcementBoundary;
    publicSafe: true;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type ShellSandboxEnforcementAuditEvent = {
    type: string;
    toolId: "shell.sandboxEnforcement";
    invocationId: string;
    dryRun: boolean;
    workingDirectory?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellSandboxEnforcementOutput = {
    kind: "agentCore.basicTool.shell.sandboxEnforcement";
    command: string;
    workingDirectory: string;
    sandboxRoots: readonly string[];
    requestedPaths: readonly string[];
    accessIntents: readonly ShellSandboxAccessIntent[];
    decision: ShellSandboxDecision;
    reasons: readonly string[];
    requiredPermission: ShellSandboxEnforcementPermission;
    requiresTapApproval: boolean;
    dryRun: boolean;
    providerCalled: boolean;
    executionBlocked: boolean;
    baseToolAppliedSandbox: false;
    runtimeGuardRequired: true;
    unsafeSideEffects: false;
};
export type ShellSandboxEnforcementResult = {
    ok: true;
    toolId: "shell.sandboxEnforcement";
    output: ShellSandboxEnforcementOutput;
    audit: readonly ShellSandboxEnforcementAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.sandboxEnforcement";
    error: ShellSandboxEnforcementError;
    audit: readonly ShellSandboxEnforcementAuditEvent[];
    events: readonly string[];
};
export declare const shellSandboxEnforcementDescriptor: {
    readonly toolId: "shell.sandboxEnforcement";
    readonly capability: "shell-execution-sandbox-enforcement";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.executionGuard";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly requiredPermission: "shell:sandbox";
    readonly unsafeSideEffects: false;
};
export declare function enforceShellSandbox(request?: ShellSandboxEnforcementRequest): ShellSandboxEnforcementResult;
