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;
};
