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