@veltdev/types-dev 4.5.0-beta.15 → 4.5.0-beta.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/app/client/snippyly.model.d.ts +44 -6
  2. package/app/models/data/button.data.model.d.ts +2 -0
  3. package/app/models/data/comment-annotation.data.model.d.ts +7 -0
  4. package/app/models/data/comment-resolver.data.model.d.ts +14 -0
  5. package/app/models/data/comment-sidebar-config.model.d.ts +26 -0
  6. package/app/models/data/config.data.model.d.ts +4 -0
  7. package/app/models/data/core-events.data.model.d.ts +9 -0
  8. package/app/models/data/custom-filter.data.model.d.ts +8 -0
  9. package/app/models/data/document-paths.data.model.d.ts +12 -0
  10. package/app/models/data/document.data.model.d.ts +2 -0
  11. package/app/models/data/location.model.d.ts +10 -0
  12. package/app/models/data/multi-thread.data.model.d.ts +2 -0
  13. package/app/models/data/notification.model.d.ts +23 -1
  14. package/app/models/data/notifications-events.data.model.d.ts +9 -0
  15. package/app/models/data/presence-actions.data.model.d.ts +5 -0
  16. package/app/models/data/presence-events.data.model.d.ts +8 -0
  17. package/app/models/data/reaction-resolver.data.model.d.ts +4 -2
  18. package/app/models/data/recorder-annotation.data.model.d.ts +3 -0
  19. package/app/models/data/recorder-events.data.model.d.ts +10 -0
  20. package/app/models/data/recorder.model.d.ts +6 -8
  21. package/app/models/data/resolver.data.model.d.ts +6 -0
  22. package/app/models/data/user-iam.data.model.d.ts +6 -0
  23. package/app/models/data/user-resolver.data.model.d.ts +2 -0
  24. package/app/models/element/comment-element.model.d.ts +105 -10
  25. package/app/models/element/crdt-element.model.d.ts +116 -0
  26. package/app/models/element/notification-element.model.d.ts +103 -3
  27. package/app/models/element/presence-element.model.d.ts +15 -1
  28. package/app/models/element/recorder-element.model.d.ts +228 -158
  29. package/app/utils/constants.d.ts +43 -0
  30. package/app/utils/enums.d.ts +17 -1
  31. package/models.d.ts +2 -0
  32. package/package.json +1 -1
  33. package/types.d.ts +1 -0
@@ -24,6 +24,7 @@ import { FeatureType } from "../utils/enums";
24
24
  import { UserContact } from "../models/data/user-contact.data.model";
25
25
  import { DocumentMetadata } from "../models/data/document-metadata.model";
26
26
  import { ReactionElement } from "../models/element/reaction-element.model";
27
+ import { CrdtElement } from "../models/element/crdt-element.model";
27
28
  import { VeltEventMetadata } from "../models/data/event-metadata.data.model";
28
29
  import { CoreEventTypesMap } from "../models/data/core-events.data.model";
29
30
  import { Document, SetDocumentsRequestOptions, FetchDocumentsRequest, FetchFoldersRequest, UpdateDocumentsRequest, UpdateLocationsRequest } from "../models/data/document.data.model";
@@ -31,6 +32,7 @@ import { FetchDocumentsResponse, FetchFoldersResponse } from "../models/data/doc
31
32
  import { UserDataProvider } from "../models/data/user-resolver.data.model";
32
33
  import { VeltDataProvider } from "../models/data/provider.data.model";
33
34
  import { VeltResetButtonStateConfig } from "../models/data/button.data.model";
35
+ import { SetLocationsRequestOptions } from "../models/data/location.model";
34
36
 
35
37
  export declare class Snippyly {
36
38
  constructor();
@@ -48,17 +50,22 @@ export declare class Snippyly {
48
50
  * @param id unique document ID
49
51
  * @param documentMetadata Document Metadata
50
52
  */
51
- setDocument: (id: string, documentMetadata?: DocumentMetadata) => void;
53
+ setDocument: (id: string, documentMetadata?: DocumentMetadata) => Promise<void>;
52
54
  /**
53
55
  * Tell us the unique ID of the current document/resource on which you want to enable collaboration.
54
56
  * @param id unique document ID
55
57
  * @deprecated This method is deprecated. Use `setDocuments` method instead.
56
58
  */
57
- setDocumentId: (id: string) => void;
59
+ setDocumentId: (id: string) => Promise<void>;
58
60
  /**
59
61
  * To set multiple documents
60
62
  */
61
- setDocuments: (documents: Document[], options?: SetDocumentsRequestOptions) => void;
63
+ setDocuments: (documents: Document[], options?: SetDocumentsRequestOptions) => Promise<void>;
64
+ /**
65
+ * To set the root document
66
+ * @param document Document object
67
+ */
68
+ setRootDocument: (document: Document) => Promise<void>;
62
69
  /**
63
70
  * To unset the document id
64
71
  * @deprecated This method is deprecated. Use `unsetDocuments` method instead.
@@ -100,12 +107,39 @@ export declare class Snippyly {
100
107
  * @param params Location
101
108
  * @param appendLocation Append location to existing location
102
109
  */
103
- setLocation: (params: Location, appendLocation?: boolean) => void;
110
+ setLocation: (params: Location, appendLocation?: boolean) => Promise<void>;
111
+
112
+ /**
113
+ * To set the root location
114
+ * @param location Location object
115
+ */
116
+ setRootLocation: (location: Location) => Promise<void>;
117
+
118
+ /**
119
+ * To set multiple locations
120
+ * @param locations Location objects
121
+ * @param options Set locations options
122
+ */
123
+ setLocations: (locations: Location[], options?: SetLocationsRequestOptions) => Promise<void>;
124
+
104
125
  /**
105
126
  * To remove location from a User
106
127
  * @param location Location
107
128
  */
108
129
  removeLocation: (location?: Location) => void;
130
+
131
+ /**
132
+ * To remove multiple locations
133
+ * @param locations Location objects
134
+ */
135
+ removeLocations: (locations?: Location[]) => void;
136
+
137
+ /**
138
+ * To remove location ids
139
+ * @param locationIds Location ids
140
+ */
141
+ unsetLocationIds: (locationIds?: string[]) => void;
142
+
109
143
  /**
110
144
  * To exclude data of specific location ids
111
145
  * @param ids Location Ids
@@ -192,6 +226,10 @@ export declare class Snippyly {
192
226
  * Get the Area Object.
193
227
  */
194
228
  getReactionElement: () => ReactionElement;
229
+ /**
230
+ * Get the CRDT Element Object.
231
+ */
232
+ getCrdtElement: () => CrdtElement;
195
233
  /**
196
234
  * Get the metadata of the current resource.
197
235
  */
@@ -211,7 +249,7 @@ export declare class Snippyly {
211
249
  * @param location Location object
212
250
  * @deprecated This method is deprecated and will be removed in next release. Use `setLocation` method with `appendLocation: true` instead.
213
251
  */
214
- addLocation: (location: any) => any;
252
+ addLocation: (location: any) => Promise<any>;
215
253
  /**
216
254
  * To set the dark mode of Velt components.
217
255
  * @param value {boolean} true/false
@@ -315,5 +353,5 @@ export declare class Snippyly {
315
353
  /**
316
354
  * To reset the button toggle map.
317
355
  */
318
- resetVeltButtonState: (config?: VeltResetButtonStateConfig) => void;
356
+ resetVeltButtonState: (config?: VeltResetButtonStateConfig) => void;
319
357
  }
@@ -1,11 +1,13 @@
1
1
  import { CommentAnnotation } from "./comment-annotation.data.model";
2
2
  import { UnreadCommentsMap } from "./comment-utils.data.model";
3
3
  import { Comment } from "./comment.data.model";
4
+ import { CustomFilters } from "./custom-filter.data.model";
4
5
  import { VeltEventMetadata } from "./event-metadata.data.model";
5
6
  import { Notification } from "./notification.model";
6
7
  export interface VeltButtonClickEvent extends VeltButtonData {
7
8
  buttonContext?: VeltButtonContext;
8
9
  metadata?: VeltEventMetadata;
10
+ customFilters?: CustomFilters;
9
11
  }
10
12
  export interface VeltButtonContext {
11
13
  type?: string;
@@ -164,6 +164,10 @@ export declare class CommentAnnotation {
164
164
  * Custom context data provided by the user
165
165
  */
166
166
  context?: any;
167
+ /**
168
+ * Context id generated from context data
169
+ */
170
+ contextId?: string;
167
171
  iam: CommentIAMConfig;
168
172
  isPageAnnotation?: boolean;
169
173
  targetInlineCommentElementId?: string;
@@ -244,3 +248,6 @@ export declare class CommentAnnotationSubscribedGroups {
244
248
  export declare class UpdateContextConfig {
245
249
  merge?: boolean;
246
250
  }
251
+ export interface ContextOptions {
252
+ partialMatch?: boolean;
253
+ }
@@ -29,6 +29,14 @@ export interface SaveCommentResolverRequest {
29
29
  metadata?: BaseMetadata;
30
30
  commentId?: string;
31
31
  }
32
+ export interface PartialUser {
33
+ userId: string;
34
+ }
35
+ export interface PartialTaggedUserContacts {
36
+ userId: string;
37
+ contact?: PartialUser;
38
+ text?: string;
39
+ }
32
40
  export interface PartialComment {
33
41
  commentId: string | number;
34
42
  commentHtml?: string;
@@ -36,6 +44,9 @@ export interface PartialComment {
36
44
  attachments?: {
37
45
  [attachmentId: number]: PartialAttachment;
38
46
  };
47
+ from?: PartialUser;
48
+ to?: PartialUser[];
49
+ taggedUserContacts?: PartialTaggedUserContacts[];
39
50
  }
40
51
  export interface PartialCommentAnnotationResult {
41
52
  strippedData: {
@@ -50,4 +61,7 @@ export interface PartialCommentAnnotation {
50
61
  comments: {
51
62
  [commentId: string]: PartialComment;
52
63
  };
64
+ from?: PartialUser;
65
+ assignedTo?: PartialUser;
66
+ resolvedByUserId?: string | null;
53
67
  }
@@ -1,23 +1,35 @@
1
1
  import { CommentAnnotation } from "./comment-annotation.data.model";
2
2
  import { UnreadCommentsMap } from "./comment-utils.data.model";
3
+ import { CustomFilters } from "./custom-filter.data.model";
3
4
  import { Location } from "./location.model";
5
+ declare class FilterOption {
6
+ id: string;
7
+ name: string;
8
+ }
4
9
  declare class FilterTypeConfig {
5
10
  name?: string;
6
11
  enable?: boolean;
7
12
  multiSelection?: boolean;
8
13
  enableGrouping?: boolean;
9
14
  order?: string[];
15
+ placeholder?: string;
16
+ id?: string;
17
+ type?: 'custom' | 'system';
18
+ options?: FilterOption[];
10
19
  }
11
20
  export declare class CommentSidebarFilterConfig {
12
21
  location?: FilterTypeConfig;
22
+ document?: FilterTypeConfig;
13
23
  people?: FilterTypeConfig;
14
24
  assigned?: FilterTypeConfig;
15
25
  tagged?: FilterTypeConfig;
26
+ involved?: FilterTypeConfig;
16
27
  priority?: FilterTypeConfig;
17
28
  status?: FilterTypeConfig;
18
29
  category?: FilterTypeConfig;
19
30
  commentType?: FilterTypeConfig;
20
31
  version?: FilterTypeConfig;
32
+ [key: string]: FilterTypeConfig | undefined;
21
33
  }
22
34
  export declare class CommentSidebarGroupConfig {
23
35
  enable?: boolean;
@@ -25,6 +37,10 @@ export declare class CommentSidebarGroupConfig {
25
37
  }
26
38
  export declare class CommentSidebarFilters {
27
39
  location?: Location[];
40
+ document?: {
41
+ id?: string;
42
+ documentName?: string;
43
+ }[];
28
44
  people?: {
29
45
  userId?: string;
30
46
  email?: string;
@@ -40,6 +56,11 @@ export declare class CommentSidebarFilters {
40
56
  email?: string;
41
57
  name?: string;
42
58
  }[];
59
+ involved?: {
60
+ userId?: string;
61
+ email?: string;
62
+ name?: string;
63
+ }[];
43
64
  priority?: string[];
44
65
  status?: string[];
45
66
  category?: string[];
@@ -47,6 +68,10 @@ export declare class CommentSidebarFilters {
47
68
  id: string;
48
69
  name?: string;
49
70
  }[];
71
+ [key: string]: {
72
+ id?: string;
73
+ name?: string;
74
+ }[] | string[] | undefined;
50
75
  }
51
76
  export interface CommentSidebarCustomActionsState {
52
77
  [key: string]: boolean;
@@ -56,6 +81,7 @@ export interface CommentSidebarCustomActionEventData {
56
81
  data: CommentAnnotation[];
57
82
  unreadDataMap: UnreadCommentsMap;
58
83
  systemFilteredData: CommentAnnotation[];
84
+ customFilters: CustomFilters;
59
85
  }
60
86
  export declare class CommentSidebarData {
61
87
  groupId?: string;
@@ -49,6 +49,10 @@ export declare class Config {
49
49
  * Default: false
50
50
  */
51
51
  advancedQueriesDisabled?: boolean;
52
+ /**
53
+ * The domain of the API proxy.
54
+ */
55
+ apiProxyDomain?: string;
52
56
  }
53
57
  export interface ExtendedFirebaseOptions extends FirebaseOptions {
54
58
  storeDbId: string;
@@ -6,10 +6,19 @@ export type CoreEventTypesMap = {
6
6
  [CoreEventTypes.USER_UPDATE]: UserUpdateEvent;
7
7
  [CoreEventTypes.DOCUMENT_INIT]: DocumentInitEvent;
8
8
  [CoreEventTypes.ERROR]: ErrorEvent;
9
+ [CoreEventTypes.INIT_UPDATE]: InitUpdateEvent;
9
10
  };
10
11
  export type UserUpdateEvent = User | null;
11
12
  export type DocumentInitEvent = boolean | undefined;
12
13
  export type ErrorEvent = {
14
+ error?: string;
13
15
  code: string;
14
16
  message?: string;
17
+ source?: string;
18
+ };
19
+ export type InitUpdateEvent = {
20
+ event: string;
21
+ methodName?: string;
22
+ source?: string;
23
+ payload?: any;
15
24
  };
@@ -13,6 +13,14 @@ export interface CustomStatus extends CustomFilter {
13
13
  svg?: string;
14
14
  iconUrl?: string;
15
15
  }
16
+ export interface CustomFilterOption {
17
+ id: string;
18
+ name: string;
19
+ selected: boolean;
20
+ }
21
+ export interface CustomFilters {
22
+ [key: string]: CustomFilterOption[];
23
+ }
16
24
  export interface CustomCategory extends CustomFilter {
17
25
  }
18
26
  export interface CustomCategoryMap {
@@ -3,10 +3,18 @@ export declare class DocumentPaths {
3
3
  * The document's unique identifier.
4
4
  */
5
5
  documentId?: string;
6
+ folderId?: string;
7
+ locationId?: string;
8
+ allDocuments?: boolean;
9
+ veltFolderId?: string;
6
10
  /**
7
11
  * Presence path.
8
12
  */
9
13
  presence?: string;
14
+ /**
15
+ * User config path.
16
+ */
17
+ userConfig?: string;
10
18
  docs?: string;
11
19
  /**
12
20
  * Cursor path.
@@ -64,6 +72,10 @@ export declare class DocumentPaths {
64
72
  * User login path.
65
73
  */
66
74
  logins?: string;
75
+ /**
76
+ * CRDT path.
77
+ */
78
+ crdt?: string;
67
79
  /**
68
80
  * Selection path.
69
81
  */
@@ -8,9 +8,11 @@ export interface SetDocumentsRequestOptions {
8
8
  folderId?: string;
9
9
  allDocuments?: boolean;
10
10
  locationId?: string;
11
+ rootDocumentId?: string;
11
12
  }
12
13
  export interface UpdateDocumentsRequest<T = unknown> {
13
14
  organizationId?: string;
15
+ folderId?: string;
14
16
  documents?: UpdateDocumentMetadata<T>[];
15
17
  }
16
18
  export interface UpdateDocumentMetadata<T = unknown> {
@@ -23,3 +23,13 @@ export declare class Version {
23
23
  */
24
24
  name: string;
25
25
  }
26
+ export declare class SetLocationsRequestOptions {
27
+ /**
28
+ * Root location.
29
+ */
30
+ rootLocationId?: string;
31
+ /**
32
+ * Merge locations.
33
+ */
34
+ appendLocation?: boolean;
35
+ }
@@ -55,6 +55,8 @@ export declare class MultiThreadCommentAnnotation {
55
55
  isDraft?: boolean;
56
56
  sourceId?: string;
57
57
  metadata?: MultiThreadMetadata;
58
+ isTemporary?: boolean;
59
+ context?: any;
58
60
  }
59
61
  export declare class MultiThreadMetadata extends BaseMetadata {
60
62
  [key: string]: any;
@@ -1,4 +1,4 @@
1
- import { AreaStatus, ArrowStatus, CommentStatus, HuddleActionTypes, NotificationSource, TagStatus, UserActionTypes } from "../../utils/enums";
1
+ import { AreaStatus, ArrowStatus, CommentStatus, HuddleActionTypes, NotificationSettingsItemType, NotificationSource, TagStatus, UserActionTypes } from "../../utils/enums";
2
2
  import { DocumentMetadata } from "./document-metadata.model";
3
3
  import { DocumentUser } from "./document-user.data.model";
4
4
  import { Location } from "./location.model";
@@ -230,3 +230,25 @@ export declare class NotificationTabConfig {
230
230
  all?: NotificationTabConfigItem;
231
231
  people?: NotificationTabConfigItem;
232
232
  }
233
+ export declare class NotificationInitialSettingsConfig {
234
+ name?: string;
235
+ id: string;
236
+ default?: string;
237
+ enable?: boolean;
238
+ values?: NotificationConfigValue[];
239
+ }
240
+ export declare class NotificationConfigValue {
241
+ name?: string;
242
+ id: NotificationSettingsItemType;
243
+ }
244
+ export declare class NotificationSettingsConfig {
245
+ [key: string]: NotificationSettingsItemType;
246
+ }
247
+ export interface NotificationsDocConfig {
248
+ inbox: 'ALL' | 'NONE' | 'MINE';
249
+ email: 'ALL' | 'NONE' | 'MINE';
250
+ [key: string]: string;
251
+ }
252
+ export interface GetNotificationsDataQuery {
253
+ type?: 'all' | 'forYou' | 'documents';
254
+ }
@@ -0,0 +1,9 @@
1
+ import { NotificationSettingsConfig } from "./notification.model";
2
+ import { NotificationEventTypes } from "../../utils/enums";
3
+ export interface SettingsUpdatedEvent {
4
+ settings: NotificationSettingsConfig;
5
+ isMutedAll: boolean;
6
+ }
7
+ export type NotificationEventTypesMap = {
8
+ [NotificationEventTypes.SETTINGS_UPDATED]: SettingsUpdatedEvent;
9
+ };
@@ -0,0 +1,5 @@
1
+ export interface PresenceRequestQuery {
2
+ documentId?: string;
3
+ organizationId?: string;
4
+ statuses?: string[];
5
+ }
@@ -3,6 +3,14 @@ import { PresenceUser } from "./presence-user.data.model";
3
3
  export interface PresenceMultipleUsersOnlineEvent {
4
4
  users: PresenceUser[];
5
5
  }
6
+ export interface PresenceUserStateChangeEvent {
7
+ user: PresenceUser;
8
+ state: string;
9
+ }
6
10
  export type PresenceEventTypesMap = {
7
11
  [PresenceEventTypes.MULTIPLE_USERS_ONLINE]: PresenceMultipleUsersOnlineEvent;
12
+ [PresenceEventTypes.USER_STATE_CHANGE]: PresenceUserStateChangeEvent;
8
13
  };
14
+ export interface GetPresenceDataResponse {
15
+ data: PresenceUser[] | null;
16
+ }
@@ -1,7 +1,8 @@
1
+ import { ResolverActions } from "../../utils/enums";
1
2
  import { BaseMetadata } from "./base-metadata.data.model";
3
+ import { PartialUser } from "./comment-resolver.data.model";
2
4
  import { ReactionAnnotation } from "./reaction-annotation.data.model";
3
- import { ResolverResponse, ResolverConfig } from "./resolver.data.model";
4
- import { ResolverActions } from "../../utils/enums";
5
+ import { ResolverConfig, ResolverResponse } from "./resolver.data.model";
5
6
  export interface ReactionAnnotationDataProvider {
6
7
  get: (request: GetReactionResolverRequest) => Promise<ResolverResponse<Record<string, PartialReactionAnnotation>>>;
7
8
  save: (request: SaveReactionResolverRequest) => Promise<ResolverResponse<undefined>>;
@@ -37,4 +38,5 @@ export interface PartialReactionAnnotation {
37
38
  annotationId: string;
38
39
  metadata?: BaseMetadata;
39
40
  icon?: string;
41
+ from?: PartialUser;
40
42
  }
@@ -180,6 +180,8 @@ export interface RecorderBoundedScaleRange {
180
180
  centerY?: number;
181
181
  topLeftX?: number;
182
182
  topLeftY?: number;
183
+ topLeftXPixels?: number;
184
+ topLeftYPixels?: number;
183
185
  }
184
186
  export interface RecorderEditRange {
185
187
  trimRanges: RecorderBoundedTrimRange[];
@@ -213,6 +215,7 @@ declare class RecorderDataAsset {
213
215
  */
214
216
  fileFormat?: RecorderFileFormat;
215
217
  thumbnailUrl?: string;
218
+ transcription: RecorderDataTranscription;
216
219
  }
217
220
  export declare class RecorderData {
218
221
  recorderId: string;
@@ -8,6 +8,16 @@ export interface RecordingDeleteEvent extends RecorderData {
8
8
  }
9
9
  export interface RecordingEditDoneEvent extends RecorderData {
10
10
  }
11
+ export interface RecordingErrorEvent {
12
+ type: string;
13
+ message: string;
14
+ recorderId?: string;
15
+ }
16
+ export interface RecordingSaveInitiatedEvent {
17
+ annotationId?: string;
18
+ message: string;
19
+ type: 'edit' | 'record';
20
+ }
11
21
  export type RecorderEventTypesMap = {
12
22
  [RecorderEventTypes.TRANSCRIPTION_DONE]: TranscriptionDoneEvent;
13
23
  [RecorderEventTypes.RECORDING_DONE]: RecordingDoneEvent;
@@ -93,15 +93,13 @@ export declare class RecordedData {
93
93
  };
94
94
  getThumbnailTag: (url?: string) => string;
95
95
  }
96
+ export declare class RecorderQualityConstraintsOptions {
97
+ video?: MediaTrackConstraints;
98
+ audio?: MediaTrackConstraints;
99
+ }
96
100
  export declare class RecorderQualityConstraints {
97
- safari?: {
98
- video?: MediaTrackConstraints;
99
- audio?: MediaTrackConstraints;
100
- };
101
- other?: {
102
- video?: MediaTrackConstraints;
103
- audio?: MediaTrackConstraints;
104
- };
101
+ safari?: RecorderQualityConstraintsOptions;
102
+ other?: RecorderQualityConstraintsOptions;
105
103
  }
106
104
  export declare class RecorderEncodingOptions {
107
105
  safari?: MediaRecorderOptions;
@@ -3,6 +3,12 @@ export interface ResolverConfig {
3
3
  saveRetryConfig?: RetryConfig;
4
4
  deleteRetryConfig?: RetryConfig;
5
5
  getRetryConfig?: RetryConfig;
6
+ resolveUsersConfig?: ResolveUsersConfig;
7
+ }
8
+ export interface ResolveUsersConfig {
9
+ organization?: boolean;
10
+ folder?: boolean;
11
+ document?: boolean;
6
12
  }
7
13
  export interface ResolverResponse<T> {
8
14
  data?: T;
@@ -11,6 +11,12 @@ export declare class UserIAM {
11
11
  * The user's contact details
12
12
  */
13
13
  user: UserContact;
14
+ documentIds?: string[];
15
+ folderIds?: string[];
16
+ organizationIds?: string[];
17
+ documentIdsCount?: number;
18
+ folderIdsCount?: number;
19
+ organizationIdsCount?: number;
14
20
  /**
15
21
  * The user's role in the document
16
22
  */
@@ -1,5 +1,7 @@
1
+ import { ResolverConfig } from "./resolver.data.model";
1
2
  import { User } from "./user.data.model";
2
3
  export interface UserDataProvider {
3
4
  get(userIds: string[]): Promise<Record<string, User>>;
5
+ config?: ResolverConfig;
4
6
  resolveTimeout?: number;
5
7
  }