import type { ToolCall } from "../../../types.js"; import type { SessionPolicy } from "../../session-policy.js"; import type { SingleToolResult } from "../contracts.js"; import type { ConfirmPort } from "../../confirm-port.js"; export interface ToolAuthorizationPorts { readonly autoConfirm: boolean; readonly session: SessionPolicy; readonly confirmPort: ConfirmPort; readonly acquirePrompt: () => Promise<() => void>; readonly writeToolBlocked: (toolEventId: string, toolName: string, reason: string) => void; readonly emitToolResult: (toolEventId: string, result: { ok: boolean; output: string; exitCode?: number; }, contextOutput: string) => void; } export interface ToolAuthorizationInput { readonly call: ToolCall; readonly toolEventId: string; readonly parentSignal: AbortSignal; readonly level: "safe" | "confirm" | "block"; readonly reason: string; } export type ToolAuthorizationOutcome = { readonly kind: "proceed"; readonly pentestJustConfirmed: boolean; } | { readonly kind: "stop"; readonly result: SingleToolResult; }; export declare const requiresPathConfirmation: (call: ToolCall) => boolean; export declare const authorizeToolExecution: (input: ToolAuthorizationInput, ports: ToolAuthorizationPorts) => Promise;