/** * Timers that can be overridden with platform specific implementations * that ensure that they are fired. These should be used when it is critical * that the timer fires on time. */ export default class CriticalTimers { static setTimeout: (...args: Parameters) => ReturnType = ( ...args: Parameters // eslint-disable-next-line @typescript-eslint/no-implied-eval ) => setTimeout(...args); static setInterval: (...args: Parameters) => ReturnType = // eslint-disable-next-line @typescript-eslint/no-implied-eval (...args: Parameters) => setInterval(...args); static clearTimeout: ( ...args: Parameters ) => ReturnType = (...args: Parameters) => clearTimeout(...args); static clearInterval: ( ...args: Parameters ) => ReturnType = (...args: Parameters) => clearInterval(...args); }