UNPKG

@veltdev/sdk

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.

255 lines (254 loc) 6.37 kB
import { AreaStatus, ArrowStatus, CommentStatus, HuddleActionTypes, NotificationSettingsItemType, NotificationSource, TagStatus, UserActionTypes } from "../../utils/enums"; import { DocumentMetadata } from "./document-metadata.model"; import { DocumentUser } from "./document-user.data.model"; import { Location } from "./location.model"; import { UserContactUs } from "./user-contact-us.data.model"; import { UserContact } from "./user-contact.data.model"; import { UserFeedback } from "./user-feedback.data.model"; import { UserReportBug } from "./user-report-bug.data.model"; import { User } from "./user.data.model"; export declare class NotificationRawData { /** * Notification ID */ id?: string; actionUser?: User; location?: Location; locationId?: number; timestamp?: number; /** * Source of a notification */ notificationSource?: NotificationSource; /** * Type of notification like 'Added', 'Updated' etc. */ actionType?: AreaStatus | ArrowStatus | CommentStatus | TagStatus | UserActionTypes | HuddleActionTypes; /** * Annotation object */ annotationData?: any; /** * Comment object for comment annotation */ targetAnnotationData?: any; recordingType?: string; huddleType?: string; huddleInvitees?: UserContact[]; oldStatus?: string; newStatus?: string; metadata?: DocumentMetadata & { apiKey?: string; clientOrganizationId?: string; organizationId?: string; } | null; documentUser?: DocumentUser; oldAccess?: string; newAccess?: string; platform?: 'sf' | 'sdk' | 'custom'; userFeedback?: UserFeedback; userReportBug?: UserReportBug; userContactUs?: UserContactUs; userInvite?: { admin?: { emails: string[]; emailProperties: { url?: string; message?: string; }; }; helper?: { emails: string[]; emailProperties: { url?: string; message?: string; }; }; commenter?: { clientDocumentId: string; documentId: string; clientOrganizationId?: string; organizationId?: string; emails: string[]; emailProperties: { url?: string; message?: string; }; }; }; documentViews?: { emails: string[]; }; displayHeadlineMessageTemplate?: string; displayHeadlineMessageTemplateData?: { actionUser: User; recipientUser: User; actionMessage: string; project: string; [key: string]: any; }; displayBodyMessage?: string; displayBodyMessageTemplate?: string; displayBodyMessageTemplateData?: { users?: User[]; [key: string]: any; }; customData?: any; notifyUsers?: { [email: string]: boolean; }; notificationSourceData?: any; } export declare class Notification { /** * Notification ID */ id: string; /** * Notification source */ notificationSource?: string; /** * Notification type */ actionType?: string; /** * Notification is read or not for the user */ isUnread?: boolean; /** * Action user of the notification */ actionUser?: User; /** * Timestamp of the notification */ timestamp?: number; /** * Notification headline message */ displayHeadlineMessage?: string; /** * Notification body message */ displayBodyMessage?: string; /** * Is comment text available */ isCommentResolverUsed?: boolean; /** * Display body message template */ displayBodyMessageTemplate?: string; /** * Display body message template data */ displayBodyMessageTemplateData?: { users?: User[]; [key: string]: any; }; /** * Display message template */ displayHeadlineMessageTemplate?: string; /** * Display message template data */ displayHeadlineMessageTemplateData?: { actionUser: User; recipientUser: User; actionMessage: string; project: string; [key: string]: any; }; /** * Is notification for you */ forYou?: boolean; /** * Notification annotation target */ targetAnnotationId?: string; /** * Notification annotation data */ notificationSourceData?: any; /** * Notification metadata */ metadata?: NotificationMetadata; /** * Notification notify users map by email hash */ notifyUsers?: { [email: string]: boolean; }; /** * Notification notify users map by user id hash */ notifyUsersByUserId?: { [userId: string]: boolean; }; } export declare class NotificationMetadata { /** * API Key */ apiKey?: string; /** * Client organization ID */ clientOrganizationId?: string; /** * Organization ID */ organizationId?: string; /** * Client document ID */ clientDocumentId?: string | number; /** * Document ID */ documentId?: string; /** * Location ID */ locationId?: number; /** * Location object */ location?: Location; } export declare class NotificationTabConfigItem { name?: string; enable?: boolean; } export declare class NotificationTabConfig { forYou?: NotificationTabConfigItem; documents?: NotificationTabConfigItem; all?: NotificationTabConfigItem; people?: NotificationTabConfigItem; } export declare class NotificationInitialSettingsConfig { name?: string; id: string; default?: string; enable?: boolean; values?: NotificationConfigValue[]; } export declare class NotificationConfigValue { name?: string; id: NotificationSettingsItemType; } export declare class NotificationSettingsConfig { [key: string]: NotificationSettingsItemType; } export interface NotificationsDocConfig { inbox: 'ALL' | 'NONE' | 'MINE'; email: 'ALL' | 'NONE' | 'MINE'; [key: string]: string; } export interface GetNotificationsDataQuery { type?: 'all' | 'forYou' | 'documents'; }