import { Store } from "@/store"; import { InteractionControlNS, PciComplianceSettings } from "@agentx/agentx-mfe-react-based"; import { UserStationLoginTypes } from "@agentx/agentx-mfe-wc-based"; import { Service } from "@agentx/agentx-services"; import { RetryStrategy } from "@agentx/agentx-services/src/core/http-config-interfaces"; import { OpenTask } from "@component-stores/TasksStore/open-tasks-store.interface"; import { CI } from "@uuip/unified-ui-platform"; import { IReactionDisposer } from "mobx"; export declare enum widgetElement { CONTACT_HISTORY = "contactHistory", WXM_JOURNEY = "wxm_journey" } export declare const logger: { readonly prefix: string; error(...msg: any): void; info(...msg: any): void; warn(...msg: any): void; }; declare function fetchPciSettings(orgId: string): Promise; declare function fetchPciAllowedAttachmentTypes(): Promise; export declare function triggerWebRTCErrorNotification(): void; export declare function triggerAgentStateErrorNotification(e: any): void; export declare function triggerAgentSignoutResultNotification(e: any): void; export declare function triggerSkillChangeNotification(e: any): void; export declare function triggerEvaluationFailureNotification(e: any): void; export declare function triggerAgentQueueReassignmentNotification(): void; export declare function listenForUserPreferencesSavedError(): IReactionDisposer; export declare function getBrowserName(): "Firefox" | "Opera" | "Edge" | "Chrome" | "Safari" | "Other"; export declare function triggerWebRTCSuccessNotification(): void; export declare const handleCallbackCloseModal: (triggeredFrom: string | undefined) => void; export declare function triggerScheduledCallBackNotification(e: CustomEvent): void; interface MonitoringScheduleNotificationDetail { isSuccess: boolean; message?: string; error?: { message?: string; trackingId?: string; }; } export declare function triggerMonitoringScheduleNotification(e: CustomEvent): void; export declare const triggerBargeInNotification: (supervisorName: string) => void; export declare const triggerLeaveInteractionNotification: (supervisorName: string) => void; export declare function getBuildNumber(): Promise; export declare const triggerToggleMuteErrorNotification: (mute: boolean) => void; export declare const triggerHoldResumeErrorNotification: (hold: boolean) => void; export declare const triggerSendDTMFErrorNotification: () => void; export declare const triggerPreferredDeviceSelectionNotification: (success: boolean, deviceName: string) => void; export declare const isReasonCodeHandledWithStateChangeIdleCode: (reasonCode: number | string) => boolean; export declare const isWebCall: (interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"]) => boolean; /** * Takes interaction object and checks if it is a digital outbound of out-dial type * @param interaction - interaction object * Returns a boolean. */ export declare const isDigitalOutbound: (interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"]) => boolean | "" | undefined; export declare const isDigitalOutboundCheck: (direction: string) => direction is "OUTBOUND"; export declare const isMediaTypeDigitalOutbound: (derivedMediaType: string | undefined) => boolean; export declare const getMediaChannelForNotification: (mediaChannel: string | undefined, direction: string) => string | undefined; export declare const getErrorMsgForReasonCode: (reasonCode: string | number | undefined, failureEventName?: string) => string | null; export declare function fetchFeatureFlags(): Promise; /** * Summary of configuration helpers */ declare const configs: { fetchPciSettings: typeof fetchPciSettings; fetchFeatureFlags: typeof fetchFeatureFlags; fetchPciAllowedAttachmentTypes: typeof fetchPciAllowedAttachmentTypes; }; export declare function updateFeatureFlags(): Promise; export declare function updateWebexFeatureFlags(): Promise; export declare function updateAgentQueueManagementEnabled(): Promise; export declare const findAuthTokenForIframeApp: () => void; export declare function listenScreenPopEvent(): Promise; export { configs }; export declare function fetchMeDetails(ci: CI.Service): Promise; export declare const getFilteredTeamsBySiteIds: (teamData: Service.Cms.ManagedAllTeamResponse, siteIds: Array) => Array; export declare const getAllFormattedTeams: (teamData: Service.Cms.ManagedAllTeamResponse) => Array; export declare const getFilteredQueuesByQueueIds: (queueData: Service.Cms.ManagedAllQueueResponse, queueIds: Array) => Array; export declare const getAllFormattedQueues: (queueData: Service.Cms.ManagedAllQueueResponse) => Array; export declare function fetchManagedTeams(): Promise; export declare function fetchManagedQueues(): Promise; export declare const getSpecificIdleCode: (auxCodeId: string) => Promise; export declare function handleIframeLogout(): void; export declare function unRegisterWebexSDK(): Promise; export declare function tabClosePrompt(e: BeforeUnloadEvent): false | ""; export declare function removeUnloadEvent(): void; /** * Order/Sort list of objects based on provided field * @param list * @param field */ export declare const orderBy: (list: any, field: string) => any; export declare const invokeLoginErrorModal: (errorMsg: string, trackingId?: string) => void; export declare const invokeMaximumSessionErrorModal: (errorMsg: string, trackingId?: string) => void; export declare function handleLoginError(errorDetail: UserStationLoginTypes.EError["detail"]): void; export declare const invokeTeamDeletedErrorModal: (errorMsg: string, trackingId?: string) => void; export declare const showContactCleanUpModal: (trackingId: string) => void; export declare function isIframedLogoutRequested(windowOpener: any): boolean; export declare function setQueryParams(): void; export declare function getOrgIdParam(): string | null; export declare function handleLogout(token: string): Promise; export declare function updateIMISettings(imiGadgetUrl: string): void; export declare function customerJourneyWidgetSettings(cjdsUrl: string): void; export declare function updateAnalyzerSettings(): void; export declare function loadAiAssistantScript(): void; export declare function attachIMIScript(imiGadgetUrl: string): void; export declare function updatePageTitle(routeName: any): void; export declare function updateTaskArea(routeName: string): void; export declare function registerDefaultShortcutKeys(): void; export declare const registerWebRTCShortcuts: () => void; /** * Below event will be received on notifs when agent is logged out. * @param event */ export declare function checkAgentLogout(event: Service.Aqm.Agent.LogoutSuccess["data"] | { loggedOutBy: string; }): void; export declare const getRonareason: (reasonCode: number, interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"], failureEventName?: string | undefined) => import("lit-html").TemplateResult<1>; export declare function ronaToOtherState(interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"], reasonCode: any, failureEventName?: string): void; export declare function confirmDeleteCallBack(event: CustomEvent): void; export declare function midcallMonitoringStarted(agentId: string, interactionId: string): void; export declare function midcallMonitoringOffered(agentId: string, interactionId: string): void; export declare function midcallMonitoringEnded(interactionId: string): void; export declare function midcallMonitoringFailed(interactionId: string): void; export declare function bargeInStarted(interactionId: string, agentId: string): void; export declare function inviteFailedToIdle(interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"], trackingId: string, reasonCode: string | number | undefined, type: string): void; export declare const auxiliaryPaneTelemetryTracker: (updatedTabName: string) => void; export declare const isSupervisor: () => boolean; export declare const isOnlySupervisor: () => boolean; export declare const updateLSLayout: (data: Store.Dynamic.DesktopLayoutJson | Store.Dynamic.ConfigJson, key: string) => void; export declare const getLayoutFromLS: (key: string) => undefined | Store.Dynamic.CachedLayout; export declare const stripSpecialChar: (str: string | undefined | null) => string; export declare function multipleExist(arr: Array, values: Array): boolean; export declare const getManagedOrgDetails: (managedOrgs: Array<{ orgId: string; role: string; }>, orgId: string) => { orgId: string; role: string; } | null; export declare const getUserSystemRole: (orgDetails: { orgId: string; role: string; }) => string | null; export declare const isSecondaryEpDnAgent: (interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"]) => boolean | "" | undefined; export declare function triggerNotificationForOwnershipTransfer(data: Service.Aqm.Contact.AgentContact["data"]): void; export declare function triggerCustomerDisconnectNotification(data: Service.Aqm.Contact.AgentContact["data"]): void; export declare const dispatchUpdatedAgentProfileEvent: (comp: any) => void; /** * Debounce method to avoid repetitive calls */ export declare const debounce: (fn: any, _timeout?: number) => (...args: any[]) => void; export declare const showErrorModal: (header: string, message: string, trackingId: string) => void; export declare function contactCallbackRetryModal(reasonCode: number, trackingId: string): { header: string; message: string; trackingId: string; }; export declare const handleWebexModal: () => void; type ShortcutEventStopListen = () => void; export declare const handleShortcutKeyEvent: () => null | ShortcutEventStopListen; export declare const toggleVoiceInteractionPanel: () => void; export declare const getFCValue: (data: OpenTask) => string | Service.Aqm.Contact.cadOrderData | undefined; export declare const getAgentCallMonitoringStateOnBargeIn: (agentCallMonitoringStateDetails: any) => InteractionControlNS.AgentCallMonitoringState; export declare const getBargedInSupId: (participants: any) => string | undefined; export declare const computeAgentCallMonitoringStateDetails: (interactionDetails: Service.Aqm.Contact.AgentContact["data"]["interaction"]) => InteractionControlNS.AgentCallMonitoringState | undefined; export declare const dispatchCustomEvent: (comp: any, eventName: string, value: any) => void; export declare function getRoleNameForTelemetry(roleName: string): string; export declare function getIsWebRTCEnabled(): boolean; export declare function reportTelemetry(functionName: string, message: string): void; export declare function getIsClickToCallEnabled(): boolean; export declare function handleTelemetryOnPresenceChange(): void; export declare function updateOutdialAniList(e: any): void; export declare const handleInteractionNavigateActiveTab: (event: Event) => void; export declare const webexCallingDeviceRegisteringHandler: () => void; export declare const handleJsSdkCiLogout: () => void; export declare const handleWxmSettingsUpdate: (e: any) => void; export declare const webCallingDeviceDisconnectedHandler: (event: any) => void; export declare const getQuerySelectorTillRouterView: () => ShadowRoot | null; export declare function agentHasSupervisorCapability(): boolean; export declare function isInteractionsPageEnabled(): boolean; /** * Checks if the current user is in CX Studio admin flow mode (any admin role) * @returns {boolean} true if CX Studio admin flow is enabled AND user has one of the CX Studio admin roles */ export declare function isCxStudioAdminFlowActive(): boolean; /** * Checks if the current user is a CX Studio admin who is also a licensed agent * @returns {boolean} true if user has a combined admin+agent role and contact center enabled */ export declare function isCxStudioAdminWithAgentCapabilities(): boolean; /** * Checks if the current user is a pure/unlicensed CX Studio admin (admin only, not also an agent) * Use this function to bypass agent-specific flows for pure admins. * Licensed admins (who are also agents) will return false and should go through agent flows. * @returns {boolean} true if user is an admin without agent capabilities */ export declare function isCxStudioAdminOnlyFlowActive(): boolean; /** * Checks if the current user has agent capabilities (either as a regular agent or as a licensed admin) * @returns {boolean} true if user is an agent or a licensed admin with agent capabilities */ export declare function hasAgentRole(): boolean; /** * Checks if the Flows feature is enabled for the current user * @returns {boolean} true if CX Studio flow listing is enabled AND user has one of the CX Studio TA roles */ export declare function isFlowsViewEnabled(): boolean; export declare function isPersonalGreetingsEnabled(): boolean; export declare function isPersonalStatsEnabled(): boolean; export declare function isQueueStatsTabEnabled(): boolean; export declare function isNewHomePageEnabled(): boolean; /** * Checks if agent state control feature flags are enabled. * Uses the cached feature flag value from STORE.app.featureFlags. * Used to determine whether to use AgentChannelTypeStatus or AgentGlobalStatus for agent state. */ export declare function getIsAgentStateControlEnabled(): boolean; export declare function isEvaluationsRbacEnabled(): boolean; export declare function isCoachingRbacEnabled(): boolean; export declare function isEvaluationsQmEnabled(): boolean; export declare function isCoachingQmEnabled(): boolean; export declare function isEvaluationsEnabled(): boolean; export declare function isCoachingEnabled(): boolean; export declare function isSentimentQmEnabled(): boolean; export declare function showConfigurationsManager(): boolean; export declare function isEvalCalibrationEnabled(): boolean; export declare function isManageEvalFormsEnabled(): boolean; export declare function isConfigurationsManagerViewEnabled(supervisorQmFeaturesEnabled: boolean): boolean; export declare function isSchedulingViewEnabled(): boolean; export declare function isForecastViewEnabled(): boolean; export declare function isInsightsEnabled(): boolean; export declare function isWxmEnabled(): boolean; export declare function isTopicAnalyticsViewEnabled(): boolean; export declare function isTaskListV2Enabled(): boolean; /** * Toggles the display of a specified element based on the `isMaximized` parameter. * * @param {boolean} isMaximized - If true, the element's display style is set to "block", otherwise it's set to "none". * @param {string} selector - The CSS selector of the element to toggle. * @param {boolean} [isAdditonalShadowRoot=false] - If true, the function will look for the element inside the shadow root of a "uuip-dynamic-widget" inside "#panel-two". * @param {boolean} [isMdTab=false] - If true and `isAdditonalShadowRoot` * is also true, the function will look for the element inside the shadow root of "md-tabs" inside the shadow root of a "uuip-dynamic-widget" inside "#panel-two". * @returns {boolean} - Returns true if the element was found and its display was toggled, otherwise returns false. */ export declare const toggleDisplayOnMaximize: (isMaximized: boolean, selector: string, isAdditonalShadowRoot?: boolean, isMdTab?: boolean) => boolean; export declare const isDigitalChannel: (store: Record | null | undefined) => boolean; export declare const fetchTeamDataById: (orgId: string, page: number, agentDbId: string, searchTerm?: string, teamId?: string, strategy429?: RetryStrategy) => Promise; export declare const layoutFileSHA: (message: string) => string; export declare const shouldRequestRealTimeTranscripts: (interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"], checkMediaForked?: boolean) => boolean; export declare const handleAgentMediaForkUpdate: (agentId: string, orgId: string, interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"]) => void; export declare const handleIMIMessageEvent: (agentId: string, orgId: string, conversationId: string) => void; export declare const handleParticipantJoining: (agentId: string, orgId: string, interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"]) => void; export declare const handleParticipantLeaving: (agentId: string, orgId: string, interaction: Service.Aqm.Contact.AgentContact["data"]["interaction"]) => void; export declare function updateOrgSettings(): Promise; export declare function isAnyAiFeatureEnabled(): boolean; export declare function isWebexCallingEnabled(broadCloudEntitlements: string[]): boolean; export declare const TIME_TO_REQUEST_CI_LOGIN = "time-to-request-ci-login"; export declare const TIME_TO_PERFORM_CI_LOGIN = "time-to-perform-ci-login"; export declare const TIME_TO_LOAD_APPLICATION_UI = "time-to-load-application-ui"; export declare const TIME_TO_LOAD_LOGIN_UI = "time-to-load-login-ui"; export declare function trackTimeToInteractive(isReload: boolean): void; export declare const trustedWidgetSources: { domains: string[]; hostnames: string[]; urlPrefixes: string[]; }; //# sourceMappingURL=Utils.d.ts.map