/// <reference path="../adonis-typings/logger.d.ts" />
import Pino from 'pino';
import { LoggerConfig, LoggerContract } from '@ioc:Adonis/Core/Logger';
/**
 * Logger class built on top of pino with couple of changes in
 * the configuration. You can access the underlying `pino`
 * object using `logger.pino`.
 */
export declare class Logger implements LoggerContract {
    protected config: LoggerConfig;
    pino: Pino.Logger;
    constructor(config: LoggerConfig, pino?: Pino.Logger);
    /**
     * A map of levels
     */
    get levels(): Pino.LevelMapping;
    /**
     * Returns the current logger level
     */
    get level(): string;
    /**
     * Update logger level
     */
    set level(level: string);
    /**
     * Returns the current logger level number
     */
    get levelNumber(): number;
    /**
     * Returns the pino version
     */
    get pinoVersion(): string;
    /**
     * Returns a boolean telling if level is enabled or
     * not.
     */
    isLevelEnabled(level: string): boolean;
    /**
     * Log message for any named level
     */
    log(level: string, message: string, ...values: any[]): void;
    log(level: string, mergingObject: any, message: string, ...values: any[]): void;
    /**
     * Log message at trace level
     */
    trace(message: string, ...values: any[]): void;
    trace(mergingObject: any, message: string, ...values: any[]): void;
    /**
     * Log message at debug level
     */
    debug(message: string, ...values: any[]): void;
    debug(mergingObject: any, message: string, ...values: any[]): void;
    /**
     * Log message at info level
     */
    info(message: string, ...values: any[]): void;
    info(mergingObject: any, message: string, ...values: any[]): void;
    /**
     * Log message at warn level
     */
    warn(message: string, ...values: any[]): void;
    warn(mergingObject: any, message: string, ...values: any[]): void;
    /**
     * Log message at error level
     */
    error(message: string, ...values: any[]): void;
    error(mergingObject: any, message: string, ...values: any[]): void;
    /**
     * Log message at fatal level
     */
    fatal(message: string, ...values: any[]): void;
    fatal(mergingObject: any, message: string, ...values: any[]): void;
    /**
     * Returns a child logger instance
     */
    child(bindings: {
        serializers?: {
            [key: string]: Pino.SerializerFn;
        };
        [key: string]: any;
    }, options?: {
        level?: Pino.Level | string;
        redact?: string[] | Pino.redactOptions;
        serializers?: {
            [key: string]: Pino.SerializerFn;
        };
    }): Logger;
    /**
     * Returns default bindings for the logger
     */
    bindings(): Pino.Bindings;
}
