import { OAuth } from "@uuip/unified-ui-platform"; import { Signal } from "@uuip/unified-ui-platform-sdk"; import "@webex/internal-plugin-dss"; import { NewMetrics } from "@webex/internal-plugin-metrics"; import * as WebExTypes from "./webex-service-types"; export interface RoomEvent { id: string; data: { command: string; eventType: string; feedbackId: string; email: string; originator: string; }; timestamp: number; trackingId: string; headers: object; sequenceNumber: number; filterMessage: boolean; wsWriteTimestamp: number; } type CheckFeatureFlagFunc = (name: string) => boolean; type SendMetricsFunc = (name: string, options?: any) => void; export declare class WebexService { private token; private readonly oauthConfig; private readonly checkFeatureFlag; private readonly sendMetricsFunc; private readonly newMessageSignal; private readonly newMeetingEventSignal; private readonly newPresenceEventSignal; private readonly newWebexChatActionDone; private readonly wdmRegistrationEvent; private readonly webexChangeManagement; private readonly webexSettingsManagement; onNewMessage: Signal.WithData; onNewMeetingEvent: Signal.WithData; onNewPresenceEvent: Signal.WithData; onWebexChatActionDone: Signal.WithData; onWdmRegistrationEvent: Signal.Empty; private readonly notificationCountUpdateSignal; onNotificationCountUpdate: Signal.WithData; private readonly onNewPresenceStateSyncEventSignal; onNewPresenceStateSyncEvent: Signal.WithData; newMetrics?: NewMetrics; private readonly presenceUpdateSignal; onPresenceUpdateEvent: Signal.WithData; private readonly webex; private mercury; private readonly device; private dss; private readonly presence; private support; private timeout; private webexInitialized; private isWebexRefreshCalled; private areWebexListenersRegistered; private deviceRegisterRetry; private mercuryConnectRetry; private webexNotificationErrorCount; private loggedServerTimeOffset; private presences; private readonly crossClientState; readonly tokenRefreshRetryTimeout = 60000; webexInitializedStatus(): boolean; getFeatureFlag(name: string): Promise; private readonly maxWebexNotificationErrorCount; private handleWebexReady; registerWebex(isProd: boolean): Promise; registerWebexEvents(): void; private listenForEvents; private registerWebexMeeting; unregisterWebex(): Promise; private poleWebexStatus; webexRequest(method: string, service: string, resource: string, body?: any): Promise; saveSetting(agentId: string, key: string, value: string): Promise; getSetting(key: string): string | undefined; getUserStatusForWebex(agentId: string | undefined): void; getPresenceStatus(agentId: string | undefined): Promise; updateWebexMeeting(): void; private getCurrentMeeting; private parseMessage; private fetchPersonData; fetchPersonDataByEmail(personEmail: string): Promise; handleWebexMessageEvents(): void; private readonly getStartTimeInMinute; private listenForIncomingMeetings; fetchUnreadConversationCount(): void; sendMessage(toPersonEmail: string, text: string): Promise; handleUnreadConversations(): void; stopListeningForPresenceUpdates(contactIds: string[]): void; initialisePresencePlugin(): void; subscribeForPresenceUpdates(contactIds: string[]): void; private hasPresenceStatus; private parsePresenceUpdate; private listenForPresenceUpdates; private readonly dispatchMercuryEvent; private retryMercuryRegister; registerToDSS(): Promise; private formatTimeDifference; canGetServerTime(): boolean; getServerTime(): Date; private registerToMercury; private subscribeStateSync; private subscribeLogUpload; private subscribeToWebexCallingEvents; private dispatchWebexCallMuteStateChangedEvent; private dispatchWebexCallHoldStateChangedEvent; registerPresenceSync(agentId: string): Promise; registerWebexCallingEvents(agentId: string): Promise; setStatus(status: WebExTypes.PresenceStatus, ttl: number): Promise; private parseUser; lookupUsers(ids: string[]): Promise; lookupUsersByEmail(emails: string[]): Promise; searchUsers(query: string, resultSize: number): Promise; updateAnswerCallsSetting(userId: string, state: boolean): Promise; private readonly pendingFeedbackIdKey; private isUploadingLogs; uploadLogsToWebex: (feedbackId: string) => void; uploadLogs(feedbackId?: string | null): string; uploadPendingLogs(): void; updateLastActiveTimeForUser(): void; private updateAnswerCallsCrossClient; private startRefreshTimer; private extractDeviceIdFromUrl; constructor(token: OAuth.Token, oauthConfig: OAuth.Config, checkFeatureFlag: CheckFeatureFlagFunc, sendMetricsFunc: SendMetricsFunc, webexInstance: unknown); getAccessToken(): string; isChangeManagementEnabled(changeManagementOrgSettingName: string): boolean; } declare module "../../index" { namespace Service.Webex { type NewMessage = WebExTypes.NewMessage; type NewMeetingEvent = WebExTypes.NewMeetingEvent; type AddedMeetingEvent = WebExTypes.AddedMeetingEvent; type RemovedMeetingEvent = WebExTypes.RemovedMeetingEvent; type Meeting = WebExTypes.Meeting; type NewPresenceEvent = WebExTypes.NewPresenceEvent; type NewPresenceStateSyncEvent = WebExTypes.NewPresenceStateSyncEvent; type UpdatedCallMuteStateEvent = WebExTypes.UpdatedCallMuteStateEvent; type UpdatedCallHoldStateEvent = WebExTypes.UpdatedCallHoldStateEvent; type PresenceData = WebExTypes.PresenceData; type Presence = WebExTypes.Presence; type WebexChatEvent = WebExTypes.WebexChatEvent; type WebexUserStatusResponse = WebExTypes.WebexUserStatusResponse; type PresenceStatus = WebExTypes.PresenceStatus; type UserSource = WebExTypes.UserSource; type User = WebExTypes.User; type UserPhoto = WebExTypes.UserPhoto; } } export {}; //# sourceMappingURL=webex-service.d.ts.map