export type TechtelUser = { name: string publicKey: Uint8Array } export type TechtelRoom = { roomKey: Uint8Array name: string members: TechtelUser[] } type TechtelEventType = 'message' | 'membership' | 'invite' | 'inviteResponse' type TechtelMessageEventData = { message: string } type TechtelMembershipEventData = { user: string action: 'join' | 'leave' } type TechtelInviteData = { roomName: string } type TechtelInviteResponseData = { roomName: string accepted: boolean } export type TechtelEvent = { emitter: TechtelUser type: TechtelEventType room: TechtelRoom data: | TechtelMessageEventData | TechtelMembershipEventData | TechtelInviteData | TechtelInviteResponseData }