import type { ExtensionAPI, ToolResultEvent } from "@earendil-works/pi-coding-agent"; export declare const DEFAULT_THRESHOLDS: readonly [3, 5, 8]; export interface RepeatToolGuardOptions { /** Consecutive repeat counts that should receive a reminder. Defaults to 3, 5, and 8. */ thresholds?: readonly number[]; /** Tool name patterns to track. If omitted, all tools are tracked. Supports `*` wildcards. */ include?: readonly string[]; /** Tool name patterns to ignore. Supports `*` wildcards. */ exclude?: readonly string[]; /** Environment source for PI_REPEAT_TOOL_GUARD_* variables. Defaults to process.env. */ env?: NodeJS.ProcessEnv; } type ToolResultContent = ToolResultEvent["content"]; export interface ToolResultPatch { content?: ToolResultContent; details?: ToolResultEvent["details"]; isError?: boolean; } export declare function makeReminderText(toolName: string, repeatCount: number, canonicalInput: string): string; export declare function parseListEnv(name: string, env?: NodeJS.ProcessEnv): string[]; export declare function normalizeThresholds(values: readonly number[] | undefined): number[]; export declare function parseThresholds(env?: NodeJS.ProcessEnv): number[]; export declare function wildcardPatternToRegExp(pattern: string): RegExp; export declare function compilePatterns(patterns: readonly string[]): RegExp[]; export declare function matchesAny(value: string, patterns: readonly RegExp[]): boolean; export declare function sortJsonValue(value: unknown, seen?: WeakSet): unknown; export declare function canonicalizeInput(input: unknown): string; export declare function appendReminderToContent(content: ToolResultContent, reminderText: string): ToolResultContent; export declare function createRepeatToolGuard(options?: RepeatToolGuardOptions): (pi: ExtensionAPI) => void; export default function repeatToolGuard(pi: ExtensionAPI): void; export {};