tempus
Version:
one rAF to rule them all
69 lines (65 loc) • 1.77 kB
TypeScript
declare class Clock {
private _elapsed;
private _currentTime;
private _startTime;
private _lastTime;
private _isPlaying;
private _deltaTime;
play(): void;
pause(): void;
reset(): void;
update(browserTime: number): void;
get time(): number;
get isPlaying(): boolean;
get deltaTime(): number;
}
type TempusCallback = (time: number, deltaTime: number) => void;
type TempusOptions = {
priority?: number;
fps?: number | string;
label?: string;
};
type UID = number;
declare class Framerate {
callbacks: {
callback: TempusCallback;
priority: number;
uid: UID;
label: string;
samples: number[];
}[];
fps: number | string;
time: number;
lastTickDate: number;
framesCount: number;
constructor(fps?: number | string);
get isRelativeFps(): boolean;
get maxFramesCount(): number;
get executionTime(): number;
dispatch(time: number, deltaTime: number): void;
raf(time: number, deltaTime: number): void;
add({ callback, priority, label, }: {
callback: TempusCallback;
priority: number;
label: string;
}): (() => void) | undefined;
remove(uid: UID): void;
}
declare class TempusImpl {
framerates: Record<number | string, Framerate>;
clock: Clock;
fps?: number;
usage: number;
private rafId;
constructor();
restart(): void;
play(): void;
pause(): void;
get isPlaying(): boolean;
add(callback: TempusCallback, { priority, fps, label, }?: TempusOptions): (() => void) | undefined;
private raf;
patch(): void;
unpatch(): void;
}
declare const Tempus: TempusImpl;
export { type TempusCallback, type TempusOptions, type UID, Tempus as default };