import type { CapabilityInvocation, CapabilityResult, ExecutionScope } from './types.js'; export declare const BLOCKING_POLL_LOOP_RE: RegExp; export declare function normalizeSearchQuery(query: string): { normalized: string; tokens: string[]; }; export declare function isToolClassFailure(name: string, result: CapabilityResult): boolean; export declare class SessionToolGuard { /** * Session identity for the trade-plan gate. Explicit (not module-global) * so multiple concurrent sessions in one process (AgentHost) can never * check trades against another session's approved plan. */ private sessionId?; private turn; private webSearchesThisTurn; private searchFamilies; private searchCache; private pendingSearches; private recentReads; private pendingReads; private recentFetches; private pendingFetches; private toolErrorCounts; private recentGreps; private recentGlobs; private recentBash; constructor(sessionId?: string); startTurn(): void; beforeExecute(invocation: CapabilityInvocation, scope: ExecutionScope): Promise; private beforeBash; private beforeGrep; private beforeGlob; afterExecute(invocation: CapabilityInvocation, result: CapabilityResult): void; private afterBash; private afterGrep; private afterGlob; cancelInvocation(invocationId: string): void; private beforeWebSearch; private beforeRead; private beforeWebFetch; private afterWebSearch; private afterRead; private afterWebFetch; }