import type { Custom } from './custom'
import type { MessageCreated } from './messageCreated'
import type { MessageUpdated } from './messageUpdated'
import type { TypingStarted } from './typingStarted'
import type { TypingStopped } from './typingStopped'
import type { WebchatConfig } from './webchatConfig'
import type { WebchatVisibility } from './webchatVisibility'
import type { ParticipantAdded } from './participantAdded'
import type { ParticipantRemoved } from './participantRemoved'
import type { MessageStatusChanged } from './messageStatusChanged'
import type { Initialize } from './initialize'
import type { MessageStreamAbortSignal, MessageStreamCompleteSignal, MessageStreamDeltaSignal } from './messageStream'

export type Signal =
  | MessageCreated
  | MessageUpdated
  | WebchatVisibility
  | WebchatConfig
  | Custom
  | TypingStarted
  | TypingStopped
  | ParticipantAdded
  | ParticipantRemoved
  | MessageStatusChanged
  | MessageStreamDeltaSignal
  | MessageStreamCompleteSignal
  | MessageStreamAbortSignal
  | Initialize

export type {
  MessageStreamAbort,
  MessageStreamComplete,
  MessageStreamDelta,
  MessageStreamSnapshot,
} from './messageStream'
