import type { ActiveRun } from "./types.ts"; import { type DelegationRole } from "./delegation.ts"; export type ToolGatewayBlockKind = "external-write" | "windows-path" | "document-reader" | "subagent-boundary" | "source-write" | "unregistered-write-tool"; export interface ToolGatewayInput { cwd: string; toolName: string; path?: string; run?: ActiveRun; subagentRole?: DelegationRole; } export interface ToolGatewayPass { allowed: true; } export interface ToolGatewayBlock { allowed: false; kind: ToolGatewayBlockKind; level: "info" | "warning"; reason: string; } export type ToolGatewayDecision = ToolGatewayPass | ToolGatewayBlock; export declare function isWriteLikeToolCall(toolName: string): boolean; export declare function evaluateToolGateway(input: ToolGatewayInput): ToolGatewayDecision;