@webkrafters/long-count
Version:
Long Count - intervals and timeout capable of handling superbly long wait times surviving device sleep and wake cycles.
51 lines (50 loc) • 2.78 kB
TypeScript
import type { Delay, EventName, EventType, Options, VoidFn } from './index';
import TimerObservable from './observable/index';
import Timer from './timer/index';
export type Opts = Partial<Options>;
export declare const internal: {
current: number;
graceId: any;
gracePeriod: number;
is(envcode: number): boolean;
previous: any;
ttl: number;
unwatch(): void;
watch(): void;
watchId: any;
};
export declare class LongCounter extends TimerObservable {
private _id;
private _timer;
constructor(timer: Timer);
get expired(): boolean;
get id(): number;
get timeRemaining(): import("./index").MyInteger;
protected set timer(timer: any);
addEventListener<ARGS extends Array<any>>(eventType: EventName, listener: VoidFn<ARGS>): void;
addEventListener<ARGS extends Array<any>>(eventType: EventType, listener: VoidFn<ARGS>): void;
cancel(): void;
dispatchEvent<ARGS extends Array<any>>(eventType: EventType, ...args: ARGS): void;
dispatchEvent<ARGS extends Array<any>>(eventType: EventName, ...args: ARGS): void;
removeEventListener<ARGS extends Array<any>>(eventType: EventType, listener: VoidFn<ARGS>): void;
removeEventListener<ARGS extends Array<any>>(eventType: EventName, listener: VoidFn<ARGS>): void;
valueOf(): number;
}
export declare class Interval extends LongCounter {
constructor(timer: Timer);
updateTimer(timer: Timer, internalCode: number): void;
}
/** @param longCounter - LongCounter instance or LongCounter.id property value */
export declare const clearInterval: <T extends number | LongCounter>(longCounter: T) => void;
/** @param longCounter - LongCounter instance or LongCounter.id property value */
export declare const clearTimeout: <T extends number | LongCounter>(longCounter: T) => void;
/** @param options - Options.immediate property value */
export declare function setInterval<ARGS extends Array<unknown>>(fn: VoidFn<ARGS>, delay?: Delay, options?: boolean, ...args: ARGS): Interval;
/** @param options - Options.immediate property value */
export declare function setInterval<ARGS extends Array<unknown>>(fn: VoidFn<ARGS>, delay?: Delay, options?: boolean, ...args: ARGS): Interval;
/** @param options - Options object */
export declare function setInterval<ARGS extends Array<unknown>>(fn: VoidFn<ARGS>, delay?: Delay, options?: Opts, ...args: ARGS): Interval;
/** @param options - Options.immediate property value */
export declare function setTimeout<ARGS extends Array<unknown>>(fn: VoidFn<ARGS>, delay?: Delay, options?: boolean, ...args: ARGS): LongCounter;
/** @param options - Options object */
export declare function setTimeout<ARGS extends Array<unknown>>(fn: VoidFn<ARGS>, delay?: Delay, options?: Opts, ...args: ARGS): LongCounter;