UNPKG

vulpix

Version:

CSP-like channels library

26 lines (25 loc) 750 B
import { DeferredPromise } from '../async/deferred-promise'; import { Callback } from '../auxiliary-types'; declare namespace WaitGroup { type DoneSignal = InstanceType<typeof DoneSignal>; } declare class DoneSignal { private readonly onDone; private isDone; constructor(onDone: Callback); done(): void; } declare class WaitGroup { private size; private doneCount; private emittedSignals; private onCompletion?; private readonly completionPromise; constructor(size: number, onCompletion?: Callback); wait(): DeferredPromise<void>; add(n: number): void; isComplete(): boolean; get signal(): DoneSignal; } declare function waitGroup(size: number): WaitGroup; export { WaitGroup, waitGroup };