/**
 * Event types for AutoMaker event system
 */

export type EventType =
  | 'agent:stream'
  | 'auto-mode:event'
  | 'auto-mode:started'
  | 'auto-mode:stopped'
  | 'auto-mode:idle'
  | 'auto-mode:error'
  | 'backlog-plan:event'
  | 'feature:created'
  | 'feature:started'
  | 'feature:completed'
  | 'feature:stopped'
  | 'feature:error'
  | 'feature:progress'
  | 'feature:tool-use'
  | 'feature:follow-up-started'
  | 'feature:follow-up-completed'
  | 'feature:verified'
  | 'feature:committed'
  | 'project:analysis-started'
  | 'project:analysis-progress'
  | 'project:analysis-completed'
  | 'project:analysis-error'
  | 'suggestions:event'
  | 'spec-regeneration:event'
  | 'issue-validation:event'
  | 'ideation:stream'
  | 'ideation:session-started'
  | 'ideation:session-ended'
  | 'ideation:analysis'
  | 'ideation:analysis-started'
  | 'ideation:analysis-progress'
  | 'ideation:analysis-complete'
  | 'ideation:analysis-error'
  | 'ideation:suggestions'
  | 'ideation:idea-created'
  | 'ideation:idea-updated'
  | 'ideation:idea-deleted'
  | 'ideation:idea-converted'
  | 'worktree:init-started'
  | 'worktree:init-output'
  | 'worktree:init-completed'
  | 'dev-server:started'
  | 'dev-server:output'
  | 'dev-server:stopped'
  | 'notification:created';

export type EventCallback = (type: EventType, payload: unknown) => void;
