UNPKG

@veltdev/types

Version:

Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.

145 lines (119 loc) 3.98 kB
import { Observable } from "rxjs"; import { PresenceUser } from "../data/presence-user.data.model"; import { GetPresenceDataResponse, PresenceEventTypesMap } from "../data/presence-events.data.model"; import { PresenceRequestQuery } from "../data/presence-actions.data.model"; import { FlockOptions } from "../data/flock-options.model"; export declare class PresenceElement { /** * Subscribe to a list of all online users who are either active or inactive on the current document. * * Returns Observable<PresenceUser[] | null>. * @deprecated This method is deprecated. Use `getData` method instead. */ getOnlineUsersOnCurrentDocument: () => Observable<PresenceUser[] | null>; /** * To set inactivity time (Default value is 5 minutes) * @param time inactivity time in milliseconds */ setInactivityTime: (time: number) => void; /** * Enable flock mode globally * @param options FlockOptions */ enableFlockMode: (options?: FlockOptions) => void; /** * Disable flock mode globally */ disableFlockMode: () => void; /** * Start/join a flock session by following the given user * @param userId The leader user ID * @param name The leader user name */ startFollowingUser: (userId: string, name: string) => void; /** * Exit the flock session / stop following */ stopFollowingUser: () => void; /** * To enable adding self to the presence list */ enableSelf: () => void; /** * To disable adding self to the presence list */ disableSelf: () => void; /** * To get the presence data */ getData: (query?: PresenceRequestQuery) => Observable<GetPresenceDataResponse>; /** * Subscribe to presence events */ on: <T extends keyof PresenceEventTypesMap>(action: T) => Observable<PresenceEventTypesMap[T]>; /** * Add a custom user to the presence list (e.g., an AI agent). * The user will appear in presence alongside real users. * @param request Object containing user data with at least userId required. */ addUser: (request: { user: Partial<PresenceUser>, localOnly?: boolean }) => void; /** * Remove a previously added custom user from the presence list. * @param request Object containing user data with at least userId required, and optional localOnly flag. * @param request.localOnly If true, user is only removed locally (not removed from DB). Default: false. */ removeUser: (request: { user: Partial<PresenceUser>, localOnly?: boolean }) => void; constructor(); /** * Subscribe to a list of all online users who are either active or inactive on the current document. * * Returns Observable<PresenceUser[] | null>. * @deprecated This method is deprecated. Use `getData` method instead. */ private _getOnlineUsersOnCurrentDocument; /** * To set inactivity time (Default value is 5 minutes) * @param time inactivity time in milliseconds */ private _setInactivityTime; /** * Enable flock mode globally */ private _enableFlockMode; /** * Disable flock mode globally */ private _disableFlockMode; /** * Start/join a flock session by following the given user */ private _startFollowingUser; /** * Exit the flock session / stop following */ private _stopFollowingUser; /** * To enable adding self to the presence list */ private _enableSelf; /** * To disable adding self to the presence list */ private _disableSelf; /** * To get the presence data */ private _getData; /** * Subscribe to presence events */ private _on; /** * Add a custom user to the presence list */ private _addUser; /** * Remove a custom user from the presence list */ private _removeUser; }