import type { LogContext } from './LoggerContext';
import type { Logger } from '@core/shared/application';

/**
 * LoggerPort - Port interface for application-layer logging.
 */
export interface LoggerPort extends Logger {
  debug(message: string, context?: LogContext): void;
  info(message: string, context?: LogContext): void;
  warn(message: string, context?: LogContext): void;
  error(message: string, error?: Error, context?: LogContext): void;
  fatal(message: string, error?: Error, context?: LogContext): void;
  child(context: LogContext): LoggerPort;
  flush(): Promise<void>;
}