UNPKG

reactronic

Version:

Reactronic - Transactional Reactive State Management

41 lines (40 loc) 1.63 kB
import { Worker } from "../Worker.js"; import { ObservableObject } from "./Mvcc.js"; export declare abstract class Indicator extends ObservableObject { abstract readonly isBusy: boolean; abstract readonly counter: number; abstract readonly workers: ReadonlySet<Worker>; abstract readonly busyDuration: number; abstract whenBusy(): Promise<void>; abstract whenIdle(): Promise<void>; static create(hint: string, activationDelay: number, deactivationDelay: number, durationResolution: number): Indicator; } export declare class IndicatorImpl extends Indicator { isBusy: boolean; counter: number; workers: Set<Worker>; busyDuration: number; readonly internals: { whenBusy: Promise<void> | undefined; resolveWhenBusy: ((value?: void) => void) | undefined; whenIdle: Promise<void> | undefined; resolveWhenIdle: ((value?: void) => void) | undefined; started: number; activationDelay: number; activationTimeout: undefined; deactivationDelay: number; deactivationTimeout: undefined; durationResolution: number; }; whenBusy(): Promise<void>; whenIdle(): Promise<void>; enter(worker: Worker): void; leave(worker: Worker): void; static createImpl(hint: string, activationDelay: number, deactivationDelay: number, durationResolution: number): IndicatorImpl; static enter(mon: IndicatorImpl, worker: Worker): void; static leave(mon: IndicatorImpl, worker: Worker): void; private static doCreate; private static activate; private static deactivate; private static tick; }