import { Color } from 'colorette';
export * from 'colorette';

declare class Logger {
    /**
     * The depth of the inspect.
     */
    readonly level: Logger.Level;
    /**
     * The inspect depth when logging objects.
     */
    readonly depth: number;
    /**
     * The context for each logging level.
     */
    readonly levels: Readonly<Record<Logger.Level, Readonly<Logger.LevelContext>>>;
    constructor(options?: Logger.Options);
    enabled(level: Logger.Level): boolean;
    disabled(level: Logger.Level): boolean;
    trace(value: unknown, ...args: readonly unknown[]): void;
    debug(value: unknown, ...args: readonly unknown[]): void;
    info(value: unknown, ...args: readonly unknown[]): void;
    warn(value: unknown, ...args: readonly unknown[]): void;
    error(value: unknown, ...args: readonly unknown[]): void;
    fatal(value: unknown, ...args: readonly unknown[]): void;
    private write;
    private get time();
}
declare namespace Logger {
    interface Options {
        level?: Level;
        depth?: number;
        levels?: Partial<Record<Level, LevelContext>>;
    }
    enum Level {
        Trace = 0,
        Debug = 1,
        Info = 2,
        Warn = 3,
        Error = 4,
        Fatal = 5
    }
    interface LevelContext {
        color: Color;
        name: string;
        method: Method;
    }
    interface Format {
        (value: string): string;
    }
    type Method = 'debug' | 'error' | 'info' | 'trace' | 'warn';
}

export { Logger };
