import { Context, Service } from '@cordisjs/core'; declare module '@cordisjs/core' { interface Context { timer: TimerService; setTimeout(callback: () => void, delay: number): () => void; setInterval(callback: () => void, delay: number): () => void; sleep(delay: number): Promise; throttle void>(callback: F, delay: number, noTrailing?: boolean): WithDispose; debounce void>(callback: F, delay: number): WithDispose; } } type WithDispose = T & { dispose: () => void; }; export class TimerService extends Service { constructor(ctx: Context); setTimeout(callback: () => void, delay: number): any; setInterval(callback: () => void, delay: number): any; sleep(delay: number): Promise; private createWrapper; throttle void>(callback: F, delay: number, noTrailing?: boolean): WithDispose; debounce void>(callback: F, delay: number): WithDispose; } export default TimerService;