import { ObservableMap } from "mobx"; export type BusyWatcherKey = string | symbol; export interface IBusyWatcher { readonly isBusy: boolean; checkBusy(key: BusyWatcherKey): boolean; } export default class BusyWatcher implements IBusyWatcher { protected busyCounter: ObservableMap; constructor(); get isBusy(): boolean; checkBusy(key: BusyWatcherKey): boolean; getBusyTicket(key?: BusyWatcherKey): () => void; watch(watchedAction: Promise): Promise; } type Decorator = (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function watchBusy(key: BusyWatcherKey): Decorator; export declare function watchBusy(target: any, propertyKey: string, descriptor: PropertyDescriptor): void; export {};