- asyncResettable<T extends (...args: any[]) => Promise<any>>(
 func: T,
 ): {
 finished: () => boolean;
 reset: () => void;
 run: T;
 wait: () => Promise<any> | null;
 }
- Type Parameters- T extends (...args: any[]) => Promise<any>
 - Returns {
 finished: () => boolean;
 reset: () => void;
 run: T;
 wait: () => Promise<any> | null;
 }