export type ShellProcessTerminationSignal = "SIGTERM" | "SIGINT" | "SIGHUP" | "SIGKILL";
export type ShellProcessTerminationPermission = "shell:process:terminate" | "shell:process:signal" | "shell:process:force";
export type ShellProcessTerminationBoundary = "input" | "scope" | "permission" | "approval" | "contract";
export type ShellProcessTerminationContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedProcessIds?: readonly number[];
    grantedPermissions?: readonly ShellProcessTerminationPermission[];
    approval?: {
        accepted: boolean;
        approvalId?: string;
        reason?: string;
    };
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellProcessTerminationTarget = {
    processId: number;
    signal: ShellProcessTerminationSignal;
    reason?: string;
    force: boolean;
};
export type ShellProcessTerminationRequest = {
    target?: Partial<ShellProcessTerminationTarget>;
    context?: ShellProcessTerminationContext;
};
export type ShellProcessTerminationErrorCode = "MISSING_PROCESS_ID" | "INVALID_PROCESS_ID" | "INVALID_REASON" | "INVALID_FORCE" | "UNSUPPORTED_SIGNAL" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "APPROVAL_REQUIRED" | "APPROVAL_REJECTED" | "REAL_EXECUTION_BLOCKED";
export type ShellProcessTerminationError = {
    code: ShellProcessTerminationErrorCode;
    message: string;
    boundary: ShellProcessTerminationBoundary;
    publicSafe: true;
    internalDetailExposed: false;
};
export type ShellProcessTerminationAuditEvent = {
    type: string;
    toolId: "shell.processTermination";
    invocationId: string;
    dryRun: boolean;
    processId?: number;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellProcessTerminationOutput = {
    kind: "agentCore.basicTool.shell.processTermination";
    target: ShellProcessTerminationTarget;
    permissionsRequired: readonly ShellProcessTerminationPermission[];
    dryRun: boolean;
    executionBlocked: boolean;
    providerCalled?: boolean;
    unsafeSideEffects: true;
    terminationEnvelope: Readonly<Record<string, unknown>> & {
        operation: "terminate-process";
        processId: number;
        signal: ShellProcessTerminationSignal;
        reason?: string;
        force: boolean;
    };
};
export type ShellProcessTerminationResult = {
    ok: true;
    toolId: "shell.processTermination";
    output: ShellProcessTerminationOutput;
    audit: readonly ShellProcessTerminationAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.processTermination";
    error: ShellProcessTerminationError;
    audit: readonly ShellProcessTerminationAuditEvent[];
    events: readonly string[];
};
export declare const shellProcessTerminationDescriptor: {
    readonly toolId: "shell.processTermination";
    readonly capability: "terminate-shell-process";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.processControl";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["shell:process:terminate"];
    readonly unsafeSideEffects: true;
};
export declare function planShellProcessTermination(request?: ShellProcessTerminationRequest): ShellProcessTerminationResult;
