//#region src/logger.d.ts
type LogLevel = 'debug' | 'info' | 'warn' | 'error';
type LogContext = Readonly<Record<string, unknown>>;
interface LogRecord extends Record<string, unknown> {
  timestamp: string;
  level: LogLevel;
  message: string;
}
interface Logger {
  debug(message: string, context?: LogContext): void;
  info(message: string, context?: LogContext): void;
  warn(message: string, context?: LogContext): void;
  error(message: string, error?: unknown, context?: LogContext): void;
  child(context: LogContext): Logger;
}
interface LoggerOptions {
  level?: LogLevel;
  context?: LogContext;
  write?: (record: LogRecord) => void;
  now?: () => Date;
}
declare function createLogger(options?: LoggerOptions): Logger;
//#endregion
export { LogContext, LogLevel, LogRecord, Logger, LoggerOptions, createLogger };