import {
  h as LoggerLevelsConfig,
  k as LoggerParamsWithLevels,
  C as CreateLogger,
  G as GetLevelNames
} from './types-BxgckgWg.js';
import { L as LogArguments } from './read-arguments-Bkk-Ifkg.js';

interface CreateLoggerFactoryParams<Levels extends LoggerLevelsConfig<string>> {
  defaultParams: LoggerParamsWithLevels<Levels>;
  readArguments(args: unknown[]): LogArguments;
  /**
   * Formats a message template with replaces.
   * @default Our lightweight implementation with %s, %d, %i, %f, %j/%o/%O (same output as %j) support
   * @example (template, replaces) => util.format(template, ...replaces) // Node.js util.format
   */
  formatMessage(template: string, replaces: unknown[]): string;
}
declare function createLoggerFactory<LevelsConfig extends LoggerLevelsConfig<string>>({
  defaultParams,
  formatMessage,
  readArguments
}: CreateLoggerFactoryParams<LevelsConfig>): CreateLogger<GetLevelNames<LevelsConfig>>;

type DefaultLoggerLevel = keyof DefaultLoggerLevelsConfig;
type DefaultLoggerLevelsConfig = typeof DEFAULT_LOGGER_LEVELS;
declare const LOGGER_SILENT_LEVEL: 'silent';
declare const DEFAULT_LOGGER_LEVELS: {
  error: number;
  warn: number;
  info: number;
  done: number;
  debug: number;
  success: 'done';
  verbose: 'debug';
  silent: number;
};
declare const DEFAULT_LOGGER_PARAMS: {
  levels: {
    error: number;
    warn: number;
    info: number;
    done: number;
    debug: number;
    success: 'done';
    verbose: 'debug';
    silent: number;
  };
  level: 'done';
  name: string;
  transform: never[];
  target: never[];
  meta: {};
};

export {
  type CreateLoggerFactoryParams as C,
  DEFAULT_LOGGER_LEVELS as D,
  LOGGER_SILENT_LEVEL as L,
  DEFAULT_LOGGER_PARAMS as a,
  type DefaultLoggerLevel as b,
  createLoggerFactory as c
};
