import Log4js from 'log4js';
interface ExitHandler {
    exited: boolean;
    syncFuncs: Map<string, Function>;
    asyncFuncs: Map<string, Function>;
    exitLogger: Log4js.Logger;
    memStats: any;
    counters: any;
    logDir: string;
    activeStartTime: number;
    lastActiveTime: number;
    lastRotationIndex: {
        idx: number;
        total: number;
    };
}
declare class ExitHandler {
    constructor(logDir: string, _memoryReporting: any, _nestedCounters: any);
    registerSync(who: any, func: any): void;
    registerAsync(who: any, func: any): void;
    _cleanupAsync(): Promise<void>;
    _cleanupSync(): void;
    exitCleanly(exitType: string, message: string, exitProcess?: boolean): Promise<void>;
    exitUncleanly(exitType: string, message: string): Promise<void>;
    runExitLog(isCleanExit: boolean, exitType: string, msg: string): void;
    writeNodeProgress(): void;
    writeExitSummary(isCleanExit: boolean, exitType: string, msg: string): void;
    writeStartSummary(): void;
    addSigListeners(sigint?: boolean, sigterm?: boolean): void;
}
export default ExitHandler;
