export declare class TimeoutManager {
    private static readonly DEFAULT_TIMEOUT;
    private static readonly ENVIRONMENT_TIMEOUTS;
    static executeWithTimeout<T>(operation: (signal: AbortSignal) => Promise<T>, options: {
        name: string;
        timeout?: number;
        environmentType?: keyof typeof TimeoutManager.ENVIRONMENT_TIMEOUTS;
        onWarning?: (timeElapsed: number) => void;
    }): Promise<T>;
    static detectEnvironment(): {
        type: keyof typeof TimeoutManager.ENVIRONMENT_TIMEOUTS | 'standard';
        reason: string;
    };
    private static isFreshInstallation;
    private static needsMCPServerStartup;
    static wrapCLICommand<T>(command: () => Promise<T>, commandName: string, baseTimeout?: number): Promise<T>;
    static createMCPTimeout(layer: 'claude' | 'gemini' | 'aistudio', operation: string, hasFiles?: boolean): {
        timeout: number;
        environmentType: keyof typeof TimeoutManager.ENVIRONMENT_TIMEOUTS | 'standard';
    };
}
export declare function withTimeout<T>(operation: () => Promise<T>, name: string, timeoutMs?: number): Promise<T>;
export declare function withCLITimeout<T>(operation: () => Promise<T>, commandName: string, baseTimeout?: number): Promise<T>;
//# sourceMappingURL=TimeoutManager.d.ts.map