import { type ILogObj, type ISettingsParam, Logger } from 'tslog';
import { type Options } from 'rotating-file-stream';
export declare const expensiveTrace: (log: Logger<ILogObj>, supplier: () => string) => void;
export declare class FlowrLogger extends Logger<ILogObj> {
    /** by keeping track of all children we can propagate updates of the settings (e.g., in tests) */
    private readonly childLoggers;
    getSubLogger(settings?: ISettingsParam<ILogObj>, logObj?: ILogObj): Logger<ILogObj>;
    updateSettings(updater: (logger: Logger<ILogObj>) => void): void;
    /**
   * make the logger log to a file as well
   */
    logToFile(filename?: string, options?: Options): void;
}
export declare const enum LogLevel {
    Silly = 0,
    Trace = 1,
    Debug = 2,
    Info = 3,
    Warn = 4,
    Error = 5,
    Fatal = 6
}
export declare const log: FlowrLogger;
