import { BaseLogger } from "../Logger";
import { Config, logPayload } from "../ILogger";
import { logLevel, logLevelType } from "../logLevel";
import { logRecord } from "../logs/log-record";
import { messageDict, enumObj } from "../logs/messageObj";
/**
 * The main library abstraction
 * @param name string
 * @param hideLogPositionForPerformance boolean
 * @param stackDepth number
 * @param minLevel logLevel
 * @param formatter string
 * @param staticParams Object
 */
export declare class pLogger extends BaseLogger {
    private handlers;
    private hideLogPositionForPerformance;
    private stackDepth;
    private name;
    private staticParams;
    logEnums: enumObj;
    enumMessages: messageDict;
    timestamp: Date | null;
    timestampGenerator: () => Date;
    constructor({ name, minLevel, formatter, staticParams, hideLogPositionForPerformance, stackDepth, }: Config);
    /**
     * Add the logger to send the logs to respective transports.
     * @param logger BaseLogger
     */
    addHandler(logger: BaseLogger): void;
    removeHandler(logger: BaseLogger): void;
    checkHandlers(): void;
    setTimestampGenerator(timestampGenerator: () => Date): void;
    private verify_log_level;
    /**
     *
     * @param logEnums - user defined object keys
     * defined in format
     * {
     * key1 : "key1",
     * key2 : "key2"
     * ...
     * }
     */
    setLogEnums(logEnums: enumObj): void;
    /**
     *
     * @param enumMessages - user defined object consisting of message object literals mapped to logEnums
     */
    setEnumMessages(enumMessages: messageDict): void;
    /**
     * define new staticParams for pLogger
     * @param newParams - dynamic object literal
     */
    updateParams(newParams: logPayload): void;
    /**
     * add on new staticParams or override preexisting staticParams.
     * @param newParams - dynamic object literal
     */
    appendParams(newParams: logPayload): void;
    log(logRecord: logRecord): void;
    _log(message: unknown, log_level: logLevelType, staticParams?: logPayload): void;
    critical(message: unknown, staticParams?: logPayload): void;
    error(message: unknown, staticParams?: logPayload): void;
    info(message: unknown, staticParams?: logPayload): void;
    debug(message: unknown, staticParams?: logPayload): void;
    warn(message: unknown, staticParams?: logPayload): void;
    trace(message: unknown, staticParams?: logPayload): void;
}
export { logLevel, Config };
