import * as API from './api.js'; export type SubscriptionRemoveHandler = (sendApi?: boolean) => Promise; export type SubscriptionCallback = (data: DataT, entityId: EntityIdT) => void; export interface HookSubscriberInfo { id: string; name: string; } export type HookRejectHandler = (rejectId: string, rejectMessage: string) => void; export type HookAcceptHandler = (data: DataT) => void; export type HookCallback = (data: DataT, accept: HookAcceptHandler, reject: HookRejectHandler) => void; export interface SocketSubscriptions { addHook: (apiModule: string, event: string, callback: HookCallback, subscriberInfo: HookSubscriberInfo) => Promise; addListener: (apiModule: string, event: string, callback: SubscriptionCallback, entityId?: API.EntityId) => Promise; addViewUpdateListener: (viewName: string, callback: SubscriptionCallback, entityId?: API.EntityId) => () => void; hasListeners: () => boolean; getPendingSubscriptionCount: () => number; } export type AddHook = SocketSubscriptions['addHook']; export type AddListener = SocketSubscriptions['addListener']; export type AddViewUpdateListener = SocketSubscriptions['addViewUpdateListener'];