export {};
declare class ItemForTimeOutQueue {
    private defered;
    private itemFunction;
    id: string;
    private _label;
    typePromised: boolean;
    timeoutId: NodeJS.Timeout;
    timetoutInProgress: boolean;
    constructor(itemFunction: any, label: string, typePromised: boolean);
    getLabel(): string;
    getId(): string;
    getPromise(): any;
    resolve(...args: any[]): any;
    reject(...args: any[]): any;
    start(): Promise<NodeJS.Timeout>;
    stop(): Promise<NodeJS.Timeout>;
    startPromised(): Promise<any>;
}
declare class TimeOutManager {
    private timeoutFnTab;
    private logger;
    private lockEngine;
    private lockKey;
    constructor(_logger: any);
    start(): void;
    stop(): void;
    lock(fn: any, id: any): Promise<string>;
    /**
     * @public
     * @method setTimeout
     * @instance
     * @category Timeout
     * @description
     *    To se a setTimeout function which is stored in a queue, and then can be manage.<br>
     * @param fn
     * @param timer
     * @param {string} label
     * @return {string} the return of the system setTimeout call method.
     */
    setTimeout(fn: any, timer: any, label?: string): any;
    setTimeoutPromised(fn: any, timer: any, label: string): any;
    cleanAtimeOut(timeoutItemQueue: ItemForTimeOutQueue): Promise<void>;
    clearEveryTimeout(): Promise<void>;
    cleanNotInProgressTimeoutCache(): void;
    listEveryTimeout(): void;
}
export { TimeOutManager };
