import { LiveStateSyncEventTypes } from "../../utils/enums"; import { User } from "./user.data.model"; export interface AccessRequestEvent { viewer?: User; editor?: User; timestamp?: number; status?: string; totalUsers?: number; presenceSnippylyUserIds?: string[]; presenceClientUserIds?: string[]; } export interface SEMEvent { viewer?: User; editor?: User; timestamp?: number; role?: string; totalUsers?: number; presenceSnippylyUserIds?: string[]; presenceClientUserIds?: string[]; } export type LiveStateEventTypesMap = { [LiveStateSyncEventTypes.ACCESS_REQUESTED]: AccessRequestEvent; [LiveStateSyncEventTypes.ACCESS_REQUEST_CANCELED]: AccessRequestEvent; [LiveStateSyncEventTypes.ACCESS_ACCEPTED]: AccessRequestEvent; [LiveStateSyncEventTypes.ACCESS_REJECTED]: AccessRequestEvent; [LiveStateSyncEventTypes.EDITOR_ASSIGNED]: SEMEvent; [LiveStateSyncEventTypes.VIEWER_ASSIGNED]: SEMEvent; [LiveStateSyncEventTypes.EDITOR_ON_DIFFERENT_TAB_DETECTED]: SEMEvent; };