warscript
Version:
A typescript library for Warcraft III using Warpack.
37 lines (36 loc) • 1.5 kB
TypeScript
/** @noSelfInFile */
import { Event } from "../../event";
declare const enum TimerPropertyKey {
HANDLE = 0,
DESTROYED = 1,
DESTROY_ON_EXPIRATION = 2,
CALLBACK = 3,
ARGS_LENGTH = 4
}
export declare class Timer implements Destroyable {
private readonly [TimerPropertyKey.HANDLE];
private [TimerPropertyKey.DESTROYED]?;
private [TimerPropertyKey.DESTROY_ON_EXPIRATION]?;
private [TimerPropertyKey.CALLBACK]?;
private [TimerPropertyKey.ARGS_LENGTH]?;
private constructor();
get handle(): jtimer;
start<Args extends any[]>(timeout: number, periodic: boolean, callback: (...args: Args) => void, ...args: Args): void;
get elapsed(): number;
get remaining(): number;
get timeout(): number;
pause(): void;
resume(): void;
destroy(): void;
static create(): Timer;
static run<Args extends any[]>(callback: (...args: Args) => void, ...args: Args): void;
static simple<Args extends any[]>(timeout: number, callback: (...args: Args) => void, ...args: Args): Timer;
static periodic<Args extends any[]>(period: number, callback: (this: void, timer: Timer, ...args: Args) => void, ...args: Args): Timer;
static counted(period: number, count: number, callback: (this: void, timer: Timer) => void): Timer;
static readonly onPeriod: Readonly<Record<number, Event>>;
}
declare global {
function sleep(timeout: number): void;
}
export declare function delay(this: void, duration: number): Promise<void>;
export {};