import { VibeTaskManagerConfig } from './config-loader.js'; export type TimeoutOperation = 'taskExecution' | 'taskDecomposition' | 'recursiveTaskDecomposition' | 'taskRefinement' | 'agentCommunication' | 'llmRequest' | 'fileOperations' | 'databaseOperations' | 'networkOperations'; export type TaskComplexity = 'simple' | 'moderate' | 'complex' | 'critical'; export interface ComplexityTimeoutConfig { simple: number; moderate: number; complex: number; critical: number; } export interface TimeoutResult { success: boolean; data?: T; error?: string; timedOut: boolean; duration: number; retryCount: number; } export interface RetryConfig { maxRetries: number; backoffMultiplier: number; initialDelayMs: number; maxDelayMs: number; enableExponentialBackoff: boolean; } export declare class TimeoutManager { private static instance; private config; private constructor(); static getInstance(): TimeoutManager; static isInstanceInitialized(): boolean; initialize(config: VibeTaskManagerConfig['taskManager']): void; isInitialized(): boolean; getTimeout(operation: TimeoutOperation): number; getComplexityAdjustedTimeout(operation: TimeoutOperation, complexity: TaskComplexity, estimatedHours?: number): number; getRetryConfig(): RetryConfig; getComplexityAdjustedRetryConfig(complexity: TaskComplexity): RetryConfig; executeWithTimeout(operation: TimeoutOperation, operationFn: () => Promise, customTimeout?: number, customRetryConfig?: Partial): Promise>; private executeWithTimeoutOnce; private calculateDelay; delay(ms: number): Promise; createTimeoutPromise(operation: TimeoutOperation, customTimeout?: number): Promise; raceWithTimeout(operation: TimeoutOperation, operationPromise: Promise, customTimeout?: number): Promise; getTimeoutSummary(): Record; validateTimeouts(): { valid: boolean; issues: string[]; }; } export declare function isTimeoutManagerInitialized(): boolean; export declare function getTimeoutManager(): TimeoutManager; //# sourceMappingURL=timeout-manager.d.ts.map