import { Logger, LazyLoggerMessage } from '@graphql-mesh/types';
import { LogLevel } from '@graphql-mesh/utils';
import pino from 'pino';

type PinoWithChild = pino.BaseLogger & {
    child: (meta: any) => PinoWithChild;
};
declare class PinoLoggerAdapter implements Logger {
    private pinoLogger;
    private meta;
    name?: string;
    constructor(pinoLogger: PinoWithChild, meta?: Record<string, any>);
    get level(): LogLevel;
    set level(level: LogLevel);
    isLevelEnabled(level: LogLevel): boolean;
    log(...args: any[]): void;
    info(...args: any[]): void;
    warn(...args: any[]): void;
    error(...args: any[]): void;
    debug(...lazyArgs: LazyLoggerMessage[]): void;
    child(nameOrMeta: string | Record<string, string | number>): PinoLoggerAdapter;
}
declare function createLoggerFromPino(pinoLogger: PinoWithChild): PinoLoggerAdapter;

export { createLoggerFromPino };
