// defines different connection states export enum ConnectionState { connecting = 'connecting', connected = 'connected', disconnected = 'disconnected', } // defines message types export enum MessageType { assign_id = 'assign_id', send_hl7v2 = 'send_hl7v2', receive_hl7v2 = 'receive_hl7v2', delivery_success = 'delivery_success', delivery_error = 'delivery_error', } // defines body of message types export type Message = | { type: MessageType.assign_id, payload: { stationId: string }} | { type: MessageType.send_hl7v2, payload: { message: string }} | { type: MessageType.receive_hl7v2, payload: { message: string, timestamp: string }} | { type: MessageType.delivery_success, payload: { message: string, timestamp: string }} | { type: MessageType.delivery_error, payload: { error: string }} // required to define list of this message type export type ReceiveHl7v2Message = Extract; export type DeliverySuccessMessage = Extract;