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