export interface RecursionGuardConfig { maxDepth: number; enableLogging: boolean; executionTimeout: number; trackHistory: boolean; } export interface MethodCall { methodName: string; timestamp: number; depth: number; instanceId?: string; } export interface RecursionResult { success: boolean; result?: T; error?: Error; recursionDetected: boolean; callDepth: number; executionTime: number; } export declare class RecursionGuard { private static callStacks; private static callHistory; private static instanceCounters; private static readonly DEFAULT_CONFIG; static executeWithRecursionGuard(methodName: string, operation: () => T | Promise, config?: Partial, instanceId?: string): Promise>; private static removeFromStack; static isMethodExecuting(methodName: string, instanceId?: string): boolean; static getCurrentDepth(methodName: string, instanceId?: string): number; static getCallStack(methodName: string, instanceId?: string): MethodCall[]; static getCallHistory(methodName: string, instanceId?: string): MethodCall[]; static clearAll(): void; static clearMethod(methodName: string, instanceId?: string): void; static generateInstanceId(methodName: string): string; static getStatistics(): { activeStacks: number; totalMethods: number; deepestStack: number; methodStats: Record; }; static createMethodGuard(methodName: string, config?: Partial): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; } //# sourceMappingURL=recursion-guard.d.ts.map