import type { ToolArgumentValidationTelemetryEvent } from "@caupulican/pi-ai"; import type { ToolFailurePhase } from "@caupulican/pi-ai/tool-repair-registry"; import { type ToolArgumentValidationLogRecord, type ToolExecutionFailureLogRecord } from "./tool-recovery-log-records.ts"; export interface ToolRecoveryLoggerStats { enabled: boolean; queued: number; inFlight: number; dropped: number; failures: number; workerStarts: number; workerCrashes: number; respawns: number; executionFailures: number; failurePhases: Partial>; } export interface ToolRecoveryLoggerOptions { enabled: boolean; sessionId: string; eventLogPath: string; failureCorpusPath: string; maxQueue?: number; batchSize?: number; now?: () => Date; debug?: (message: string) => void; workerSpecifier?: string | URL; } export declare class ToolRecoveryLogger { private readonly enabled; private readonly sessionId; private readonly eventLogPath; private readonly failureCorpusPath; private readonly maxQueue; private readonly batchSize; private readonly now; private readonly debug; private readonly workerSpecifier; private readonly queue; private readonly flushWaiters; private worker; private inFlight; private inFlightBatchId; private inFlightWorker; private batchId; private recordSequence; private dropped; private failures; private workerStarts; private workerCrashes; private respawns; private executionFailures; private readonly failurePhases; private respawnAttempted; private shuttingDown; constructor(options: ToolRecoveryLoggerOptions); recordToolArgumentValidation(event: ToolArgumentValidationTelemetryEvent): ToolArgumentValidationLogRecord | undefined; recordToolExecutionFailure(args: { provider?: string; model?: string; tool: string; details: unknown; }): ToolExecutionFailureLogRecord | undefined; getStats(): ToolRecoveryLoggerStats; flush(timeoutMs?: number): Promise; drain(): Promise; private waitForIdle; shutdown(timeoutMs?: number): Promise; private enqueue; private pump; private ensureWorker; private handleWorkerMessage; private handleWorkerFailure; private resolveFlushWaitersIfIdle; } //# sourceMappingURL=tool-recovery-logger.d.ts.map