/** * Timeout Manager * * Tracks per-ticket timeouts and emits warnings. */ import { EventEmitter } from 'events'; import type { AutopilotConfig } from '../types.js'; /** * Timeout Manager Events */ export interface TimeoutManagerEvents { 'timeout:warning': { ticketId: string; percentUsed: number; }; 'timeout:exceeded': { ticketId: string; }; } /** * Timeout Manager */ export declare class TimeoutManager extends EventEmitter { private timeouts; private checkInterval?; private config; constructor(config: AutopilotConfig); /** * Start the timeout manager */ start(): void; /** * Stop the timeout manager */ stop(): void; /** * Start tracking a ticket */ startTicket(ticketId: string, workerId: number, customTimeoutMs?: number): void; /** * Cancel timeout tracking for a ticket */ cancelTicket(ticketId: string): void; /** * Check all timeouts and emit warnings */ private checkTimeouts; /** * Handle timeout exceeded */ private handleTimeout; /** * Get remaining time for a ticket */ getRemainingTime(ticketId: string): number | null; /** * Get elapsed time for a ticket */ getElapsedTime(ticketId: string): number | null; /** * Get percent used for a ticket */ getPercentUsed(ticketId: string): number | null; /** * Check if ticket is being tracked */ isTracking(ticketId: string): boolean; /** * Get all active timeouts */ getActiveTimeouts(): Array<{ ticketId: string; workerId: number; elapsedMs: number; remainingMs: number; percentUsed: number; }>; /** * Update default timeout */ setDefaultTimeout(timeoutMs: number): void; /** * Update warning threshold */ setWarningThreshold(percent: number): void; /** * Get count of active timeouts */ getActiveCount(): number; } /** * Create a timeout manager */ export declare function createTimeoutManager(config: AutopilotConfig): TimeoutManager; //# sourceMappingURL=timeout-manager.d.ts.map