/**
 * Base execution logger for Execution Engine
 */
export type ExecutionLogLevel = 'debug' | 'info' | 'warn' | 'error'

// Import resource-specific contexts for the union type
import type { WorkflowLogContext } from '../workflow/logging'
import type { AgentLogContext } from '../agent/observability/logging'

// Union type for all contexts
export type LogContext = WorkflowLogContext | AgentLogContext

// Updated interface with consolidated context
export interface ExecutionLogMessage {
  level: ExecutionLogLevel
  message: string
  timestamp: number
  context?: LogContext
}

export interface ExecutionLoggerConfig {
  context?: string
}

// Logger interface - any logger implementation must satisfy this
export interface IExecutionLogger {
  debug(message: string, context?: LogContext): void
  info(message: string, context?: LogContext): void
  warn(message: string, context?: LogContext): void
  error(message: string, context?: LogContext): void
}
