46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
type TimerType = 'timeout' | 'interval' | 'immediate';
|
|
interface TimerRecord {
|
|
id: NodeJS.Timeout | NodeJS.Immediate;
|
|
type: TimerType;
|
|
createdAt: number;
|
|
}
|
|
declare class GlobalTimerManager {
|
|
private timers;
|
|
private isHooked;
|
|
private readonly original;
|
|
/**
|
|
* 开始拦截全局定时器
|
|
*/
|
|
hook(): void;
|
|
/**
|
|
* 恢复原始的全局定时器函数
|
|
*/
|
|
unhook(): void;
|
|
/**
|
|
* 清除所有被追踪的定时器
|
|
*/
|
|
clearAll(): number;
|
|
/**
|
|
* 按类型清除定时器
|
|
*/
|
|
clearByType(type: TimerType): number;
|
|
/**
|
|
* 获取当前活跃的定时器数量
|
|
*/
|
|
getActiveCount(): number;
|
|
/**
|
|
* 获取定时器统计信息
|
|
*/
|
|
getStats(): Record<TimerType, number>;
|
|
/**
|
|
* 获取所有定时器的详细信息(用于调试)
|
|
*/
|
|
getTimers(): TimerRecord[];
|
|
}
|
|
export declare const timerManager: GlobalTimerManager;
|
|
export declare const hookTimers: () => void;
|
|
export declare const unhookTimers: () => void;
|
|
export declare const clearAllTimers: () => number;
|
|
export declare const getTimerStats: () => Record<TimerType, number>;
|
|
export {};
|