@fluid-topics/public-api 1.0.84-alpha → 1.0.86-alpha1

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.
@@ -1,39 +1,61 @@
1
1
  const wnd = (typeof window === "undefined" ? globalThis : window);
2
- // function normalizeMetadataPreferences(metadata: any): Record<string, FtMetadataPreferenceConfiguration> {
3
- // let normalized = {}
4
- // for (let key in metadata) {
5
- // let values = metadata[key]
6
- // if (typeof values !== "object" || Array.isArray(values)) {
7
- // values = {prior: values}
8
- // }
9
- // for (let property of ["prior", "filter"]) {
10
- // values[property] = Array.isArray(values[property]) ? values[property] : [values[property]]
11
- // values[property] = values[property]
12
- // .map((v: string) => v != null ? "" + v : "")
13
- // .filter((v: string) => v !== "")
14
- // }
15
- // normalized[key] = values
16
- // }
17
- // return normalized
18
- // }
2
+ function normalizeMetadataPreferences(metadata) {
3
+ let normalized = {};
4
+ for (let key in metadata) {
5
+ let values = metadata[key];
6
+ if (typeof values !== "object" || Array.isArray(values)) {
7
+ values = { prior: values };
8
+ }
9
+ for (let property of ["prior", "filter"]) {
10
+ values[property] = Array.isArray(values[property]) ? values[property] : [values[property]];
11
+ values[property] = values[property]
12
+ .map(v => v != null ? "" + v : "")
13
+ .filter(v => v !== "");
14
+ }
15
+ normalized[key] = values;
16
+ }
17
+ return normalized;
18
+ }
19
19
  function getStorageKey(tenantBaseUrl) {
20
20
  return `${tenantBaseUrl}-FluidTopicsUnauthenticatedUserSearchPreferences`;
21
21
  }
22
- export {};
23
- // export function addUnauthenticatedUserSearchPreferencesChangeHandler(tenantBaseUrl: string,
24
- // handler: (newValue: FtSearchPreferencesConfiguration) => void): HandlerRegistration {
25
- // if (wnd.localStorage) {
26
- // const key = getStorageKey(tenantBaseUrl)
27
- // const eventListener = (event: StorageEvent) => {
28
- // if (event.storageArea === wnd.localStorage && event.key === key) {
29
- // handler(JSON.parse(event.newValue ?? "{}"))
30
- // }
31
- // }
32
- // wnd.addEventListener("storage", eventListener)
33
- // return {
34
- // removeHandler: () => wnd.removeEventListener("storage", eventListener)
35
- // }
36
- // }
37
- // console.error("Cannot handle unauthenticated preferences: local storage is unavailable.")
38
- // return undefined
39
- // }
22
+ export function setUnauthenticatedUserSearchPreferences(tenantBaseUrl, input) {
23
+ if (wnd.localStorage) {
24
+ let preferences = {
25
+ ...input,
26
+ metadata: normalizeMetadataPreferences(input.metadata ?? {})
27
+ };
28
+ const key = getStorageKey(tenantBaseUrl);
29
+ const newValue = JSON.stringify(preferences);
30
+ wnd.localStorage.setItem(key, newValue);
31
+ wnd.dispatchEvent(new StorageEvent("storage", {
32
+ key,
33
+ newValue,
34
+ storageArea: wnd.localStorage,
35
+ url: wnd.location.href
36
+ }));
37
+ return preferences;
38
+ }
39
+ console.error("Cannot set unauthenticated preferences: local storage is unavailable.");
40
+ }
41
+ export function getUnauthenticatedUserSearchPreferences(tenantBaseUrl) {
42
+ if (wnd.localStorage) {
43
+ return JSON.parse(wnd.localStorage.getItem(getStorageKey(tenantBaseUrl)) ?? "{}");
44
+ }
45
+ console.error("Cannot get unauthenticated preferences: local storage is unavailable.");
46
+ }
47
+ export function addUnauthenticatedUserSearchPreferencesChangeHandler(tenantBaseUrl, handler) {
48
+ if (wnd.localStorage) {
49
+ const key = getStorageKey(tenantBaseUrl);
50
+ const eventListener = (event) => {
51
+ if (event.storageArea === wnd.localStorage && event.key === key) {
52
+ handler(JSON.parse(event.newValue ?? "{}"));
53
+ }
54
+ };
55
+ wnd.addEventListener("storage", eventListener);
56
+ return {
57
+ removeHandler: () => wnd.removeEventListener("storage", eventListener)
58
+ };
59
+ }
60
+ console.error("Cannot handle unauthenticated preferences: local storage is unavailable.");
61
+ }
@@ -1,2 +1,6 @@
1
1
  import { FtSession, FtUserProfile, FtUserRole, FtUserRoleKeys } from "../types/ft-common/public.js";
2
- export declare function userHasRole(sessionOrProfileOrRoles: FtSession | FtUserProfile | Array<FtUserRole | FtUserRoleKeys> | undefined, expectedRole: FtUserRole | FtUserRoleKeys): boolean;
2
+ type SessionOrProfileOrRoles = FtSession | FtUserProfile | Array<FtUserRole | FtUserRoleKeys> | undefined | null;
3
+ export declare function userHasRole(sessionOrProfileOrRoles: SessionOrProfileOrRoles, expectedRole: FtUserRole | FtUserRoleKeys): boolean;
4
+ export declare function userHasAnyRole(sessionOrProfileOrRoles: SessionOrProfileOrRoles, ...expectedRoles: Array<FtUserRole | FtUserRoleKeys>): boolean;
5
+ export declare function userHasAllRoles(sessionOrProfileOrRoles: SessionOrProfileOrRoles, ...expectedRoles: Array<FtUserRole | FtUserRoleKeys>): boolean;
6
+ export {};
@@ -6,10 +6,10 @@ const rolesInheritance = {
6
6
  [FtUserRole.KHUB_ADMIN]: [FtUserRole.CONTENT_PUBLISHER],
7
7
  [FtUserRole.ADMIN]: [FtUserRole.KHUB_ADMIN, FtUserRole.USERS_ADMIN, FtUserRole.PORTAL_ADMIN],
8
8
  [FtUserRole.DEVELOPER]: [FtUserRole.BETA_USER, FtUserRole.DEBUG_USER],
9
+ [FtUserRole.GENERATIVE_AI_EXPORT_USER]: [FtUserRole.GENERATIVE_AI_USER],
9
10
  };
10
11
  function roleMatches(actual, expected) {
11
- return true;
12
- // return actual === expected || (rolesInheritance[actual] ?? []).some((inherited: FtUserRole | FtUserRoleKeys) => roleMatches(inherited, expected))
12
+ return actual === expected || (rolesInheritance[actual] ?? []).some((inherited) => roleMatches(inherited, expected));
13
13
  }
14
14
  export function userHasRole(sessionOrProfileOrRoles, expectedRole) {
15
15
  if (sessionOrProfileOrRoles == null) {
@@ -24,3 +24,15 @@ export function userHasRole(sessionOrProfileOrRoles, expectedRole) {
24
24
  : [];
25
25
  return roles.some(role => roleMatches(role, expectedRole));
26
26
  }
27
+ export function userHasAnyRole(sessionOrProfileOrRoles, ...expectedRoles) {
28
+ if (sessionOrProfileOrRoles == null) {
29
+ return false;
30
+ }
31
+ return expectedRoles.some(role => userHasRole(sessionOrProfileOrRoles, role));
32
+ }
33
+ export function userHasAllRoles(sessionOrProfileOrRoles, ...expectedRoles) {
34
+ if (sessionOrProfileOrRoles == null) {
35
+ return false;
36
+ }
37
+ return expectedRoles.every(role => userHasRole(sessionOrProfileOrRoles, role));
38
+ }
@@ -24,6 +24,264 @@ export declare enum FtTopicOriginType {
24
24
  }
25
25
  export type FtTopicOriginTypeKeys = keyof typeof FtTopicOriginType;
26
26
  export declare const isFtTopicOriginType: (o: any) => o is FtTopicOriginType;
27
+ export interface FtAnalyticsEventDisplay {
28
+ width: number;
29
+ height: number;
30
+ }
31
+ export declare const isFtAnalyticsEventDisplay: (o: any) => o is FtAnalyticsEventDisplay;
32
+ export interface FtAnalyticsEventGenAIProfile {
33
+ customPrompt?: string;
34
+ name: string;
35
+ id: string;
36
+ }
37
+ export declare const isFtAnalyticsEventGenAIProfile: (o: any) => o is FtAnalyticsEventGenAIProfile;
38
+ export interface FtAnalyticsEventLocation {
39
+ type: string;
40
+ value: string;
41
+ }
42
+ export declare const isFtAnalyticsEventLocation: (o: any) => o is FtAnalyticsEventLocation;
43
+ export interface FtAnalyticsEventOrigin {
44
+ pageType: string;
45
+ type: string;
46
+ url: string;
47
+ }
48
+ export declare const isFtAnalyticsEventOrigin: (o: any) => o is FtAnalyticsEventOrigin;
49
+ export interface FtAnalyticsEventPage {
50
+ name: string;
51
+ language?: string;
52
+ id: string;
53
+ type: string;
54
+ url: string;
55
+ }
56
+ export declare const isFtAnalyticsEventPage: (o: any) => o is FtAnalyticsEventPage;
57
+ export interface FtAnalyticsEventPublication {
58
+ metadata?: Array<FtMetadata>;
59
+ id: string;
60
+ mimeType?: string;
61
+ title?: string;
62
+ type?: FtAnalyticsPublicationTypeKeys;
63
+ parentId?: string;
64
+ }
65
+ export declare const isFtAnalyticsEventPublication: (o: any) => o is FtAnalyticsEventPublication;
66
+ export interface FtAnalyticsEventRating {
67
+ type: string;
68
+ value?: string;
69
+ }
70
+ export declare const isFtAnalyticsEventRating: (o: any) => o is FtAnalyticsEventRating;
71
+ export interface FtAnalyticsEventSearchQuery {
72
+ terms: string;
73
+ searchType?: string;
74
+ lastUpdate?: string;
75
+ facets?: Array<FtAnalyticsSearchFacet>;
76
+ }
77
+ export declare const isFtAnalyticsEventSearchQuery: (o: any) => o is FtAnalyticsEventSearchQuery;
78
+ export interface FtAnalyticsEventSearchResponse {
79
+ autocorrect?: boolean;
80
+ nbResults: number;
81
+ }
82
+ export declare const isFtAnalyticsEventSearchResponse: (o: any) => o is FtAnalyticsEventSearchResponse;
83
+ export interface FtAnalyticsEventSearchResult {
84
+ document: FtAnalyticsEventPublication;
85
+ rank: number;
86
+ topic?: FtAnalyticsEventTopic;
87
+ type: string;
88
+ }
89
+ export declare const isFtAnalyticsEventSearchResult: (o: any) => o is FtAnalyticsEventSearchResult;
90
+ export interface FtAnalyticsEventTopic {
91
+ mapTitle?: string;
92
+ metadata?: Array<FtMetadata>;
93
+ tocId: string;
94
+ mapId?: string;
95
+ title: string;
96
+ }
97
+ export declare const isFtAnalyticsEventTopic: (o: any) => o is FtAnalyticsEventTopic;
98
+ export declare enum FtAnalyticsPublicationType {
99
+ STRUCTURED_DOCUMENT = "STRUCTURED_DOCUMENT",
100
+ UNSTRUCTURED_DOCUMENT = "UNSTRUCTURED_DOCUMENT",
101
+ SHARED_PERSONAL_BOOK = "SHARED_PERSONAL_BOOK",
102
+ PERSONAL_BOOK = "PERSONAL_BOOK",
103
+ MAP_ATTACHMENT = "MAP_ATTACHMENT",
104
+ RESOURCE = "RESOURCE"
105
+ }
106
+ export type FtAnalyticsPublicationTypeKeys = keyof typeof FtAnalyticsPublicationType;
107
+ export declare const isFtAnalyticsPublicationType: (o: any) => o is FtAnalyticsPublicationType;
108
+ export interface FtAnalyticsSearchFacet {
109
+ dateValue?: FtAnalyticsSearchDateFacetValueKeys;
110
+ values?: Array<string>;
111
+ from?: string;
112
+ to?: string;
113
+ type?: FtAnalyticsSearchFacetTypeKeys;
114
+ key: string;
115
+ }
116
+ export declare const isFtAnalyticsSearchFacet: (o: any) => o is FtAnalyticsSearchFacet;
117
+ export declare enum FtAnalyticsSearchDateFacetValue {
118
+ LAST_WEEK = "LAST_WEEK",
119
+ LAST_MONTH = "LAST_MONTH",
120
+ LAST_QUARTER = "LAST_QUARTER",
121
+ LAST_YEAR = "LAST_YEAR"
122
+ }
123
+ export type FtAnalyticsSearchDateFacetValueKeys = keyof typeof FtAnalyticsSearchDateFacetValue;
124
+ export declare const isFtAnalyticsSearchDateFacetValue: (o: any) => o is FtAnalyticsSearchDateFacetValue;
125
+ export declare enum FtAnalyticsSearchFacetType {
126
+ VALUE = "VALUE",
127
+ DATE = "DATE",
128
+ RANGE = "RANGE"
129
+ }
130
+ export type FtAnalyticsSearchFacetTypeKeys = keyof typeof FtAnalyticsSearchFacetType;
131
+ export declare const isFtAnalyticsSearchFacetType: (o: any) => o is FtAnalyticsSearchFacetType;
132
+ export interface FtAnalyticsEvent {
133
+ offline: boolean;
134
+ appVersion: string;
135
+ appName: string;
136
+ name: FtAnalyticsEventNameKeys;
137
+ version: string;
138
+ }
139
+ export declare const isFtAnalyticsEvent: (o: any) => o is FtAnalyticsEvent;
140
+ export declare enum FtAnalyticsEventName {
141
+ BOOKMARK__CREATE = "BOOKMARK__CREATE",
142
+ BOOKMARK__DELETE = "BOOKMARK__DELETE",
143
+ CASE_DEFLECTION__START = "CASE_DEFLECTION__START",
144
+ CASE_DEFLECTION__OPEN_TICKET = "CASE_DEFLECTION__OPEN_TICKET",
145
+ CASE_DEFLECTION__RATE = "CASE_DEFLECTION__RATE",
146
+ COLLECTION__CREATE = "COLLECTION__CREATE",
147
+ COLLECTION__UPDATE = "COLLECTION__UPDATE",
148
+ COLLECTION__DELETE = "COLLECTION__DELETE",
149
+ DOCUMENT__DISPLAY = "DOCUMENT__DISPLAY",
150
+ DOCUMENT__DOWNLOAD = "DOCUMENT__DOWNLOAD",
151
+ DOCUMENT__PRINT = "DOCUMENT__PRINT",
152
+ DOCUMENT__PROCESS = "DOCUMENT__PROCESS",
153
+ DOCUMENT__RATE = "DOCUMENT__RATE",
154
+ DOCUMENT__SEARCH = "DOCUMENT__SEARCH",
155
+ DOCUMENT__START_DISPLAY = "DOCUMENT__START_DISPLAY",
156
+ DOCUMENT__UNRATE = "DOCUMENT__UNRATE",
157
+ FEEDBACK__SEND = "FEEDBACK__SEND",
158
+ GEN_AI__COMPLETED_QUERY = "GEN_AI__COMPLETED_QUERY",
159
+ GEN_AI__RATE = "GEN_AI__RATE",
160
+ GENAI_CASE_DEFLECTION__START = "GENAI_CASE_DEFLECTION__START",
161
+ GENAI_CASE_DEFLECTION__OPEN_TICKET = "GENAI_CASE_DEFLECTION__OPEN_TICKET",
162
+ KHUB__PROCESS = "KHUB__PROCESS",
163
+ KHUB__SEARCH = "KHUB__SEARCH",
164
+ LABELS__DOWNLOAD = "LABELS__DOWNLOAD",
165
+ LINK__SHARE = "LINK__SHARE",
166
+ PAGE__DISPLAY = "PAGE__DISPLAY",
167
+ PERSONAL_BOOK__CREATE = "PERSONAL_BOOK__CREATE",
168
+ PERSONAL_BOOK__DELETE = "PERSONAL_BOOK__DELETE",
169
+ PERSONAL_BOOK__UPDATE = "PERSONAL_BOOK__UPDATE",
170
+ PERSONAL_TOPIC__CREATE = "PERSONAL_TOPIC__CREATE",
171
+ PERSONAL_TOPIC__UPDATE = "PERSONAL_TOPIC__UPDATE",
172
+ PERSONAL_TOPIC__DELETE = "PERSONAL_TOPIC__DELETE",
173
+ SAVED_SEARCH__CREATE = "SAVED_SEARCH__CREATE",
174
+ SAVED_SEARCH__DELETE = "SAVED_SEARCH__DELETE",
175
+ SAVED_SEARCH__UPDATE = "SAVED_SEARCH__UPDATE",
176
+ SEARCH_PAGE__SELECT = "SEARCH_PAGE__SELECT",
177
+ TOPIC__DISPLAY = "TOPIC__DISPLAY",
178
+ TOPIC__RATE = "TOPIC__RATE",
179
+ TOPIC__START_DISPLAY = "TOPIC__START_DISPLAY",
180
+ TOPIC__UNRATE = "TOPIC__UNRATE",
181
+ USER__LOGIN = "USER__LOGIN",
182
+ USER__LOGOUT = "USER__LOGOUT",
183
+ HEARTBEAT = "HEARTBEAT"
184
+ }
185
+ export type FtAnalyticsEventNameKeys = keyof typeof FtAnalyticsEventName;
186
+ export declare const isFtAnalyticsEventName: (o: any) => o is FtAnalyticsEventName;
187
+ export interface FtCaseDeflectionEvent extends FtAnalyticsEvent {
188
+ searchQuery?: FtAnalyticsEventSearchQuery;
189
+ context: string;
190
+ rating?: FtAnalyticsEventRating;
191
+ topic?: FtAnalyticsEventTopic;
192
+ }
193
+ export declare const isFtCaseDeflectionEvent: (o: any) => o is FtCaseDeflectionEvent;
194
+ export interface FtDocumentDisplayEvent extends FtAnalyticsEvent {
195
+ publication: FtAnalyticsEventPublication;
196
+ viewDurationMs: number;
197
+ location: FtAnalyticsEventLocation;
198
+ }
199
+ export declare const isFtDocumentDisplayEvent: (o: any) => o is FtDocumentDisplayEvent;
200
+ export interface FtDocumentDownloadEvent extends FtAnalyticsEvent {
201
+ document: FtAnalyticsEventPublication;
202
+ location: FtAnalyticsEventLocation;
203
+ }
204
+ export declare const isFtDocumentDownloadEvent: (o: any) => o is FtDocumentDownloadEvent;
205
+ export interface FtDocumentPrintEvent extends FtAnalyticsEvent {
206
+ publication: FtAnalyticsEventPublication;
207
+ }
208
+ export declare const isFtDocumentPrintEvent: (o: any) => o is FtDocumentPrintEvent;
209
+ export interface FtDocumentSearchEvent extends FtAnalyticsEvent {
210
+ searchResponse: FtAnalyticsEventSearchResponse;
211
+ publication: FtAnalyticsEventPublication;
212
+ searchQuery: FtAnalyticsEventSearchQuery;
213
+ }
214
+ export declare const isFtDocumentSearchEvent: (o: any) => o is FtDocumentSearchEvent;
215
+ export interface FtDocumentStartDisplayEvent extends FtAnalyticsEvent {
216
+ publication: FtAnalyticsEventPublication;
217
+ location: FtAnalyticsEventLocation;
218
+ }
219
+ export declare const isFtDocumentStartDisplayEvent: (o: any) => o is FtDocumentStartDisplayEvent;
220
+ export interface FtFeedbackSendEvent extends FtAnalyticsEvent {
221
+ breadcrumb: Array<FtAnalyticsEventTopic>;
222
+ publication: FtAnalyticsEventPublication;
223
+ loggedIn: boolean;
224
+ }
225
+ export declare const isFtFeedbackSendEvent: (o: any) => o is FtFeedbackSendEvent;
226
+ export interface FtGenAiCaseDeflectionEvent extends FtAnalyticsEvent {
227
+ generationId?: string;
228
+ searchQuery?: FtAnalyticsEventSearchQuery;
229
+ context: string;
230
+ }
231
+ export declare const isFtGenAiCaseDeflectionEvent: (o: any) => o is FtGenAiCaseDeflectionEvent;
232
+ export interface FtGenAiCompletedQueryEvent extends FtAnalyticsEvent {
233
+ result: string;
234
+ profile: FtAnalyticsEventGenAIProfile;
235
+ durationMs: number;
236
+ parameters?: Record<string, string>;
237
+ queryId: string;
238
+ }
239
+ export declare const isFtGenAiCompletedQueryEvent: (o: any) => o is FtGenAiCompletedQueryEvent;
240
+ export interface FtGenAiRateEvent extends FtAnalyticsEvent {
241
+ rating: FtAnalyticsEventRating;
242
+ comment: string;
243
+ queryId: string;
244
+ }
245
+ export declare const isFtGenAiRateEvent: (o: any) => o is FtGenAiRateEvent;
246
+ export interface FtKhubSearchEvent extends FtAnalyticsEvent {
247
+ searchResponse: FtAnalyticsEventSearchResponse;
248
+ searchQuery: FtAnalyticsEventSearchQuery;
249
+ }
250
+ export declare const isFtKhubSearchEvent: (o: any) => o is FtKhubSearchEvent;
251
+ export interface FtLabelsDownloadEvent extends FtAnalyticsEvent {
252
+ locale: string;
253
+ }
254
+ export declare const isFtLabelsDownloadEvent: (o: any) => o is FtLabelsDownloadEvent;
255
+ export interface FtLinkShareEvent extends FtAnalyticsEvent {
256
+ breadcrumb: Array<FtAnalyticsEventTopic>;
257
+ publication: FtAnalyticsEventPublication;
258
+ }
259
+ export declare const isFtLinkShareEvent: (o: any) => o is FtLinkShareEvent;
260
+ export interface FtPageDisplayEvent extends FtAnalyticsEvent {
261
+ origin: FtAnalyticsEventOrigin;
262
+ display: FtAnalyticsEventDisplay;
263
+ page: FtAnalyticsEventPage;
264
+ }
265
+ export declare const isFtPageDisplayEvent: (o: any) => o is FtPageDisplayEvent;
266
+ export interface FtSearchPageSelectEvent extends FtAnalyticsEvent {
267
+ searchResult: FtAnalyticsEventSearchResult;
268
+ externalLink?: string;
269
+ searchQuery: FtAnalyticsEventSearchQuery;
270
+ }
271
+ export declare const isFtSearchPageSelectEvent: (o: any) => o is FtSearchPageSelectEvent;
272
+ export interface FtTopicDisplayEvent extends FtAnalyticsEvent {
273
+ breadcrumb: Array<FtAnalyticsEventTopic>;
274
+ publication: FtAnalyticsEventPublication;
275
+ viewDurationMs: number;
276
+ location: FtAnalyticsEventLocation;
277
+ }
278
+ export declare const isFtTopicDisplayEvent: (o: any) => o is FtTopicDisplayEvent;
279
+ export interface FtTopicStartDisplayEvent extends FtAnalyticsEvent {
280
+ breadcrumb: Array<FtAnalyticsEventTopic>;
281
+ publication: FtAnalyticsEventPublication;
282
+ location: FtAnalyticsEventLocation;
283
+ }
284
+ export declare const isFtTopicStartDisplayEvent: (o: any) => o is FtTopicStartDisplayEvent;
27
285
  export interface FtCredentials {
28
286
  password: string;
29
287
  newPassword?: string;
@@ -85,7 +343,6 @@ export interface FtMap {
85
343
  metadata: Array<FtMetadata>;
86
344
  watermark?: FtWatermark;
87
345
  openMode: FtOpenModeKeys;
88
- translatedTitle?: string;
89
346
  topicsApiEndpoint?: string;
90
347
  description?: string;
91
348
  attachmentsApiEndpoint?: string;
@@ -118,7 +375,6 @@ export interface FtTocNode {
118
375
  hasRating?: boolean;
119
376
  tocId: string;
120
377
  children: Array<FtTocNode>;
121
- translatedTitle?: string;
122
378
  origin?: FtTopicOrigin;
123
379
  contentId: string;
124
380
  title: string;
@@ -288,6 +544,12 @@ export interface FtMySearchRequest {
288
544
  contentLocale?: string;
289
545
  }
290
546
  export declare const isFtMySearchRequest: (o: any) => o is FtMySearchRequest;
547
+ export interface FtPrivacyPolicyConfiguration {
548
+ policyDescription: string;
549
+ agreementRequired: boolean;
550
+ userAgreementMessage: string;
551
+ }
552
+ export declare const isFtPrivacyPolicyConfiguration: (o: any) => o is FtPrivacyPolicyConfiguration;
291
553
  export declare enum FtRatingType {
292
554
  STARS = "STARS",
293
555
  LIKE = "LIKE",
@@ -669,6 +931,7 @@ export declare enum FtUserRole {
669
931
  RATING_USER = "RATING_USER",
670
932
  FEEDBACK_USER = "FEEDBACK_USER",
671
933
  GENERATIVE_AI_USER = "GENERATIVE_AI_USER",
934
+ GENERATIVE_AI_EXPORT_USER = "GENERATIVE_AI_EXPORT_USER",
672
935
  CONTENT_PUBLISHER = "CONTENT_PUBLISHER",
673
936
  KHUB_ADMIN = "KHUB_ADMIN",
674
937
  USERS_ADMIN = "USERS_ADMIN",
@@ -704,8 +967,10 @@ export declare const isFtSession: (o: any) => o is FtSession;
704
967
  export interface FtUserProfile {
705
968
  emailAddress?: string;
706
969
  displayName?: string;
970
+ otpValidated?: boolean;
707
971
  roles: Array<FtUserRoleKeys>;
708
972
  userId?: string;
973
+ privacyPolicyAgreementDate?: Date | string;
709
974
  tags: Array<string>;
710
975
  }
711
976
  export declare const isFtUserProfile: (o: any) => o is FtUserProfile;