export type PendingTasks = { default: number; } & PartialRecord; export interface TaskCounter { /** true - while has at least 1 running task by key. */ isPending: (key?: keyof PendingTasks) => boolean; /** true - while has at least 1 running task. */ isAnyPending: () => boolean; push: (key?: keyof PendingTasks) => void; pop: (key?: keyof PendingTasks) => void; reset: (key?: keyof PendingTasks) => void; resetAll: VoidFunction; } export interface TaskCounterOptions { pendingTasks?: PendingTasks | undefined; resetTask?: ((tasks: NonNullable, key: keyof NonNullable) => void) | undefined; onPending?: VoidFunction | undefined; onIdle?: VoidFunction | undefined; onStartTask?: ((task: keyof NonNullable) => void) | undefined; onEndTask?: ((task: keyof NonNullable) => void) | undefined; } export declare function getTaskCounter({ pendingTasks, resetTask, onPending, onIdle, onStartTask, onEndTask, }: TaskCounterOptions): TaskCounter;