export type ShellResourceManagementAction = "inspect" | "reserve" | "release" | "adjust-limit";
export type ShellResourceKind = "process-slot" | "pty" | "working-directory" | "environment" | "io-buffer";
export type ShellResourceManagementPermission = "shell:resource:inspect" | "shell:resource:reserve" | "shell:resource:release" | "shell:resource:limit";
export type ShellResourceManagementBoundary = "input" | "scope" | "permission" | "governance" | "contract" | "resource";
export type ShellResourceManagementContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedResourceIds?: readonly string[];
    grantedPermissions?: readonly ShellResourceManagementPermission[];
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellResourceManagementTarget = {
    action: ShellResourceManagementAction;
    resourceKind: ShellResourceKind;
    resourceId?: string;
    amount: number;
    limitName?: string;
    limitValue?: number;
};
export type ShellResourceManagementRequest = {
    target?: Partial<ShellResourceManagementTarget>;
    context?: ShellResourceManagementContext;
};
export type ShellResourceManagementErrorCode = "INVALID_ACTION" | "MISSING_RESOURCE_KIND" | "INVALID_RESOURCE_KIND" | "INVALID_RESOURCE_ID" | "INVALID_RESOURCE_AMOUNT" | "MISSING_LIMIT_NAME" | "INVALID_LIMIT_VALUE" | "RESOURCE_SCOPE_DENIED" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "REAL_EXECUTION_BLOCKED";
export type ShellResourceManagementError = {
    code: ShellResourceManagementErrorCode;
    message: string;
    boundary: ShellResourceManagementBoundary;
    publicSafe: true;
    internalDetailExposed: false;
};
export type ShellResourceManagementAuditEvent = {
    type: string;
    toolId: "shell.shellResourceManagement";
    invocationId: string;
    dryRun: boolean;
    resourceId?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellResourceManagementOutput = {
    kind: "agentCore.basicTool.shell.shellResourceManagement";
    target: ShellResourceManagementTarget;
    permissionsRequired: readonly ShellResourceManagementPermission[];
    dryRun: true;
    executionBlocked: true;
    unsafeSideEffects: boolean;
    resourceEnvelope: {
        operation: ShellResourceManagementAction;
        resourceKind: ShellResourceKind;
        resourceId?: string;
        allocationDelta: number;
        limitChange?: {
            name: string;
            value: number;
        };
    };
};
export type ShellResourceManagementResult = {
    ok: true;
    toolId: "shell.shellResourceManagement";
    output: ShellResourceManagementOutput;
    audit: readonly ShellResourceManagementAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.shellResourceManagement";
    error: ShellResourceManagementError;
    audit: readonly ShellResourceManagementAuditEvent[];
    events: readonly string[];
};
export declare const shellResourceManagementDescriptor: {
    readonly toolId: "shell.shellResourceManagement";
    readonly capability: "manage-shell-resources";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.shellManagement";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly unsafeSideEffects: true;
};
export declare function planShellResourceManagement(request?: ShellResourceManagementRequest): ShellResourceManagementResult;
