import type { TelemetryEntry } from "../telemetry/types.js"; export declare const CONTEXT_BROKER_BUDGET: { readonly contextStatusMax: 2; readonly contextPackMax: 2; readonly graphToolsMax: 2; readonly getSymbolContextMax: 2; readonly totalWarning: 6; readonly totalFailure: 10; }; export declare const GRAPH_TOOLS: readonly ["graph_query", "graph_symbol", "graph_neighbors", "graph_paths"]; export declare const SYMBOL_TOOLS: readonly ["get_symbol_context"]; export declare const FALLBACK_TOOLS: readonly ["graph_query", "graph_symbol", "graph_neighbors", "graph_paths", "get_symbol_context", "repo_map", "search_code", "get_project_commands"]; export declare const LOCKED_ALLOWED_TOOLS: readonly ["context_status", "context_pack"]; export interface ToolCallCounts { [tool: string]: number; } export interface ToolLoopAssessment { totalCalls: number; counts: ToolCallCounts; graphToolCalls: number; symbolToolCalls: number; fallbackToolCalls: number; toolLoopFailure: boolean; routingFailure: boolean; toolLoopWarning: boolean; repeatedLoopPattern: boolean; firstRouteDriftAfterContextPack?: { index: number; tool: string; timestamp: string; }; reasons: string[]; warnings: string[]; } export declare function countsFromEntries(entries: TelemetryEntry[]): ToolCallCounts; export declare function countsFromRecord(record: Record | undefined): ToolCallCounts; export declare function totalCallsFromCounts(counts: ToolCallCounts): number; export declare function findFirstRouteDriftAfterContextPack(entries: TelemetryEntry[]): ToolLoopAssessment["firstRouteDriftAfterContextPack"]; export declare function detectRepeatedLoopPattern(entries: TelemetryEntry[]): boolean; export declare function assessContextBrokerToolLoop(input: { counts?: ToolCallCounts; totalCalls?: number; entries?: TelemetryEntry[]; }): ToolLoopAssessment;