export type ShellProcessManagementPermission = "shell:process:manage";
export type ShellProcessManagementBoundary = "input" | "permission" | "scope" | "resource" | "contract";
export type ShellProcessManagementAction = "inspect" | "signal" | "reap" | "prioritize";
export type ShellManagedProcessSignal = "SIGINT" | "SIGTERM" | "SIGKILL";
export type ShellProcessManagementContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    grantedPermissions?: readonly ShellProcessManagementPermission[];
    allowedSessionIds?: readonly string[];
    allowedProcessIds?: readonly number[];
    approval?: {
        accepted: boolean;
        approvalId?: string;
        reason?: string;
    };
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellProcessManagementTarget = {
    action: ShellProcessManagementAction;
    sessionId?: string;
    processId?: number;
    signal?: ShellManagedProcessSignal;
    priority?: number;
    reason?: string;
};
export type ShellProcessManagementRequest = {
    target?: Partial<ShellProcessManagementTarget>;
    context?: ShellProcessManagementContext;
};
export type ShellProcessManagementErrorCode = "MISSING_ACTION" | "INVALID_ACTION" | "MISSING_PROCESS_REFERENCE" | "INVALID_SESSION_ID" | "INVALID_PROCESS_ID" | "MISSING_SIGNAL" | "INVALID_SIGNAL" | "INVALID_PRIORITY" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_PROCESS_CHANGE_BLOCKED";
export type ShellProcessManagementError = {
    code: ShellProcessManagementErrorCode;
    message: string;
    boundary: ShellProcessManagementBoundary;
    publicSafe: true;
    internalDetailExposed: false;
};
export type ShellProcessManagementAuditEvent = {
    type: string;
    toolId: "shell.shellProcessManagement";
    invocationId: string;
    dryRun: boolean;
    sessionId?: string;
    processId?: number;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellProcessManagementOutput = {
    kind: "agentCore.basicTool.shell.shellProcessManagement";
    action: ShellProcessManagementAction;
    sessionId?: string;
    processId?: number;
    signal?: ShellManagedProcessSignal;
    priority?: number;
    reason?: string;
    requiredPermission: ShellProcessManagementPermission;
    requiresTapApproval: boolean;
    approvalId?: string;
    dryRun: true;
    processChangeBlocked: true;
    unsafeSideEffects: boolean;
    resultEnvelope: {
        planned: true;
        observedStatus?: "unknown";
        processHandle?: never;
    };
};
export type ShellProcessManagementResult = {
    ok: true;
    toolId: "shell.shellProcessManagement";
    output: ShellProcessManagementOutput;
    audit: readonly ShellProcessManagementAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.shellProcessManagement";
    error: ShellProcessManagementError;
    audit: readonly ShellProcessManagementAuditEvent[];
    events: readonly string[];
};
export declare const shellProcessManagementDescriptor: {
    readonly toolId: "shell.shellProcessManagement";
    readonly capability: "shell-process-management";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.shellManagement";
    readonly defaultDryRun: true;
    readonly requiredPermission: "shell:process:manage";
    readonly tapOwnsApproval: true;
};
export declare function planShellProcessManagement(request?: ShellProcessManagementRequest): ShellProcessManagementResult;
