export declare enum LoadingState { Start = "Start", Stop = "Stop", Depth = "Depth" } export declare class SingleDispatcher { protected listenerId: number; protected readonly listenerMap: { [id: string]: (data: T) => void; }; addListener(callback: (data: T) => void): () => void; dispatch(data: T): void; } export declare class MultipleDispatcher { protected listenerId: number; protected listenerMap: { [N in keyof T]?: { [id: string]: (data: T[N]) => void; }; }; addListener(name: N, callback: (data: T[N]) => void): () => void; dispatch(name: N, data: T[N]): void; } export declare class TaskCounter extends SingleDispatcher { deferSecond: number; readonly list: { promise: Promise; note: string; }[]; private ctimer; constructor(deferSecond: number); addItem(promise: Promise, note?: string): Promise; private completeItem; } export declare function isPlainObject(obj: any): boolean; export declare function deepMerge(target: { [key: string]: any; }, ...args: any[]): any; export declare function warn(str: string): void; export declare function isPromise(data: any): data is Promise; export declare function isServer(): boolean; export declare function serverSide(callback: () => T): T | undefined; export declare function clientSide(callback: () => T): T | undefined; export declare function delayPromise(second: number): (target: any, key: string, descriptor: PropertyDescriptor) => void;