import pino from 'pino';
export declare type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
export interface LoggerSentryOptions {
    dsn: string;
    serverName: string;
    release: string;
    tracesSampleRate: number;
    debug: boolean;
    level: 'debug' | 'info' | 'warning' | 'error' | 'fatal';
    tagKeys?: string[];
    excludeKeys?: string[];
}
export interface LoggerOptions {
    name: string;
    level?: LogLevel;
    async?: boolean;
    sentry?: LoggerSentryOptions;
}
export declare class Logger {
    options: LoggerOptions;
    inner: pino.Logger;
    constructor(options: LoggerOptions);
    child(bindings: pino.Bindings): Logger;
    trace(msg: string, o?: object, ...args: any[]): void;
    debug(msg: string, o?: object, ...args: any[]): void;
    info(msg: string, o?: object, ...args: any[]): void;
    warn(msg: string, o?: object, ...args: any[]): void;
    warning(msg: string, o?: object, ...args: any[]): void;
    error(msg: string, o?: object, ...args: any[]): void;
    fatal(msg: string, o?: object, ...args: any[]): void;
    crit(msg: string, o?: object, ...args: any[]): void;
    critical(msg: string, o?: object, ...args: any[]): void;
}
export declare const createLogger: (options: LoggerOptions) => Logger;
