/// <reference path="../typings/logger.d.ts" />
import Pino from "pino";
import { LoggerConfig, LoggerContract } from "@app::Appruut/Core/Logger";
export declare class Logger implements LoggerContract {
    protected config: LoggerConfig;
    pino: Pino.Logger;
    constructor(config: LoggerConfig, pino?: Pino.Logger);
    get levels(): Pino.LevelMapping;
    get level(): string;
    set level(level: string);
    get levelNumber(): number;
    get pinoVersion(): string;
    isLevelEnabled(level: string): boolean;
    log(level: string, message: string, ...values: any[]): void;
    log(level: string, mergingObject: any, message: string, ...values: any[]): void;
    trace(message: string, ...values: any[]): void;
    trace(mergingObject: any, message: string, ...values: any[]): void;
    debug(message: string, ...values: any[]): void;
    debug(mergingObject: any, message: string, ...values: any[]): void;
    info(message: string, ...values: any[]): void;
    info(mergingObject: any, message: string, ...values: any[]): void;
    warn(message: string, ...values: any[]): void;
    warn(mergingObject: any, message: string, ...values: any[]): void;
    error(message: string, ...values: any[]): void;
    error(mergingObject: any, message: string, ...values: any[]): void;
    fatal(message: string, ...values: any[]): void;
    fatal(mergingObject: any, message: string, ...values: any[]): void;
    child(bindings: {
        level?: Pino.Level | string;
        serializers?: {
            [key: string]: Pino.SerializerFn;
        };
        [key: string]: any;
    }, options?: {
        redact?: string[] | Pino.redactOptions;
        serializers?: {
            [key: string]: Pino.SerializerFn;
        };
    }): Logger;
    bindings(): Pino.Bindings;
}
