import { Getter } from '../types/getter.js'; import type { Nullable } from '../types/misc.js'; import type { ILogger, ILoggerFactory } from './types.js'; /** Helper base class for storing and using a logger instance. */ export declare class Loggable { private _logger; constructor(logger?: ILogger); /** Returns current logger ({@linkcode ILogger}), or {@link EMPTY_LOGGER} if not set via {@linkcode Loggable.setLogger} or {@linkcode Loggable.setLoggerFactory}. */ protected get logger(): ILogger; /** @returns Whether logger has been set */ protected get hasLogger(): boolean; setLogger(logger: Getter>): this; setLoggerFactory(factory: ILoggerFactory | null, ...args: Parameters): this; /** Override this method to customize logger name formatting which is used in {@link Loggable._createLogger} */ protected getLoggerName(name: string | undefined): string; /** Helper for creating a logger instance with factory and params. */ protected _createLogger(factory: ILoggerFactory, ...args: Parameters): ILogger; }