export declare class MonitorManager {
    private _instanceHostname;
    private _monitorData;
    constructor();
    static create(): Promise<MonitorManager>;
    private initialize;
    cpuAverage(): {
        idle: number;
        total: number;
    };
    setupIntervals(): Promise<void>;
    private isProcessOnlyManagerRuntime;
    addMongoTracker(data: MongoMonitorModel): Promise<void>;
    addFunctionTracker(data: MonitorFunction): Promise<void>;
    private pushMonitorData;
    private estimateBatchSize;
    setupEventLoop(): void;
    private flushMonitorData;
}
export interface MongoMonitorModel {
    date: Date;
    method: string;
    collection: string;
    duration: number;
    query: string;
}
export declare class MonitorMongo {
    private _startTime;
    private _method;
    private _collection;
    private _query;
    constructor();
    static create(method: string, collection: string, query: string): MonitorMongo;
    private initialize;
    finish(): Promise<void>;
}
export declare class MonitorManagerFunction {
    private _functionCnt;
    private _functions;
    private _functionLastCompletedWS;
    private _functionLastCompleted;
    constructor();
    static create(): MonitorManagerFunction;
    private initialize;
    startMonitorFunction(functionType: MonitorFunctionType, functionName: string, user: string, id_socket: string, data: any): number;
    finishMonitorFunction(id: number): Promise<void>;
    getActiveMonitorFunctions(): MonitorFunction[];
    getLastCompletedMonitorFunction(): MonitorFunction;
    getLastCompletedMonitorFunctionWS(): {
        [id_socket: string]: MonitorFunction;
    };
}
export type MonitorFunctionType = 'Cron Method' | 'Method' | 'User Specific Publication' | 'Publication';
export declare class MonitorFunction {
    private _timer;
    duration: number;
    functionType: MonitorFunctionType;
    functionName: string;
    user: string;
    data: any;
    startTime: Date;
    endTime: Date;
    lastTime: Date;
    id_socket: string;
    id: number;
    constructor();
    static create(id: number, functionType: MonitorFunctionType, functionName: string, user: string, id_socket: string, data: any): MonitorFunction;
    private initialize;
    finish(): Promise<boolean>;
}
