declare global { interface Window { productFruitsIsReady?: boolean; productFruitsReady?: () => void; $productFruits?: ProductFruitsPushObject; productFruits?: ProductFruitsObject; } } type ProductFruitsObject = { init: (workspaceCode: string, language: string, userObject: ProductFruitsUserObject, options?: ProductFruitsInitOptions) => void; safeExec: (callback: ($productFruits: ProductFruitsPushObject) => void) => void; api?: ProductFruitsApi; services?: ProductFruitsServices; identifyUser?: (user: ProductFruitsUserObject) => void; }; type ProductFruitsPushObject = Array & { }; type ProductFruitsServices = { attachDebugger: () => void; destroy: () => void; setLoggerLevel: (level: string) => void; resetLoggerLevel: () => void; }; type ProductFruitsApi = { tours?: ProductFruitsToursApi; hints?: ProductFruitsHintsApi; announcementsV2?: ProductFruitsAnnouncementsV2Api; surveys?: ProductFruitsSurveysApi; checklists?: ProductFruitsChecklistsApi; inAppCenter?: ProductFruitsInAppCenterApi; feedback?: ProductFruitsFeedbackApi; analytics?: ProductFruitsAnalyticsApi; events?: ProductFruitsEventsApi; }; type ProductFruitsToursApi = { getTours: () => unknown[]; tryStartTour: (tourId: number) => void; markAs: (tourId: number, state: string, kill?: boolean) => void; advanceToNextStep: (tourId: number) => void; goToStep: (tourId: number, cardGUID: string) => void; isTourEligible: (tourId: number) => Promise; listen: (event: string, callback: (...args: unknown[]) => void) => void; }; type ProductFruitsHintsApi = { updatePositions: () => void }; type ProductFruitsAnnouncementsV2Api = { showAnnouncement: (announcementID: string) => void; attachNewsWidgetToElement: (htmlElementInstance: HTMLElement) => void; listen: (event: string, callback: (...args: unknown[]) => void) => void; }; type ProductFruitsSurveysApi = { startSurvey: (surveyId: string) => void; listen: (event: string, callback: (...args: unknown[]) => void) => void; }; type ProductFruitsChecklistsApi = { markItemAsDone: (internalId: string, expand?: boolean) => void; injectToElement: ( checklistId: number, element: HTMLElement, options?: { checkEligibility?: boolean }, ) => void; isChecklistEligible: (checklistId: number) => Promise; getChecklists: () => unknown[]; resetForCurrentUser: (checklistId: number) => void; listen: (event: string, callback: (...args: unknown[]) => void) => void; }; type ProductFruitsInAppCenterApi = { open: (opts?: { focus?: { articleId?: number } }) => void; close: () => void; isOpened: () => boolean; hide: () => void; show: () => void; attachToCustomElement: (elementInstance: HTMLElement) => void; listen: (event: string, callback: (...args: unknown[]) => void) => void; }; type ProductFruitsFeedbackApi = { showModal: ( position?: { top?: string; right?: string; bottom?: string; left?: string }, onClose?: () => void, ) => void; hideModal: () => void; changeRecorderMode: (mode: "native" | "html") => void; }; type ProductFruitsAnalyticsApi = { forwardEvent: ( callback: (event: string, data?: Record) => void, ) => void; }; type ProductFruitsEventsApi = { track: ( eventName: string, attributes?: Record, options?: { forwardToIntegrations?: boolean }, ) => void; }; type ProductFruitsInitOptions = { disableLocationChangeDetection?: boolean; disableBannersAutoMargin?: boolean; hideInAppCenterLauncher?: boolean; hideElvinLauncher?: boolean; customNavigation?: { use?: boolean; onGet?: () => string; navigate?: (location: string) => void; }; }; type ProductFruitsUserObject = { username: string; email?: string; role?: string; signUpAt?: string; firstname?: string; lastname?: string; props?: UserCustomProps; hmac?: { hash: string; expiration?: string | null | undefined; }; group?: { groupId?: string; props?: UserGroupCustomProps; }; }; type UserCustomProps = { [key: string]: string | number | boolean | Array | Array | UserCustomProps; }; type UserGroupCustomProps = { [key: string]: string | number | boolean | Array | Array | UserCustomProps; }; declare const productFruits: ProductFruitsObject; export { productFruits, ProductFruitsObject, ProductFruitsInitOptions, ProductFruitsUserObject, ProductFruitsPushObject, ProductFruitsServices, ProductFruitsApi, ProductFruitsToursApi, ProductFruitsHintsApi, ProductFruitsAnnouncementsV2Api, ProductFruitsSurveysApi, ProductFruitsChecklistsApi, ProductFruitsInAppCenterApi, ProductFruitsFeedbackApi, ProductFruitsAnalyticsApi, ProductFruitsEventsApi };