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 {
    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;
    startTurn(): void;
    beforeExecute(invocation: CapabilityInvocation, scope: ExecutionScope): Promise<CapabilityResult | null>;
    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;
}
