import { ConfirmationState, ConversationEndEntity, ParticipantType } from "../../common/Constants"; import ChatConfig from "@microsoft/omnichannel-chat-sdk/lib/core/ChatConfig"; import { ConversationState } from "./ConversationState"; import { IInternalTelemetryData } from "../../common/telemetry/interfaces/IInternalTelemetryData"; import { ILiveChatWidgetLocalizedTexts } from "./ILiveChatWidgetLocalizedTexts"; import { IRenderingMiddlewareProps } from "../../components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps"; import { StartChatFailureType } from "./StartChatFailureType"; export interface ILiveChatWidgetContext { domainStates: { liveChatConfig: ChatConfig | undefined; widgetElementId: string; preChatSurveyResponse: string; chatToken: any; renderingMiddlewareProps: IRenderingMiddlewareProps | undefined; citations?: Record; postChatContext: any; middlewareLocalizedTexts: ILiveChatWidgetLocalizedTexts | undefined; telemetryInternalData: IInternalTelemetryData; globalDir: "rtl" | "ltr"; liveChatContext: any; customContext: any; widgetSize: any; widgetInstanceId: string; initialChatSdkRequestId: string; transcriptRequestId: string; confirmationPaneConfirmedOptionClicked: boolean; confirmationState: ConfirmationState; startChatFailureType: StartChatFailureType; botAvatarInitials?: string; }; appStates: { conversationState: ConversationState; isMinimized?: boolean; previousElementIdOnFocusBeforeModalOpen: string | null; startChatFailed: boolean; outsideOperatingHours: boolean; preChatResponseEmail: string; isAudioMuted: boolean | null; newMessage: boolean; hideStartChatButton: boolean; reconnectId: string | undefined; proactiveChatStates: { proactiveChatBodyTitle: string; proactiveChatEnablePrechat: boolean; proactiveChatInNewWindow: boolean; }; e2vvEnabled: boolean; unreadMessageCount: number; conversationEndedBy: ConversationEndEntity; chatDisconnectEventReceived: boolean; selectedSurveyMode: string | null; postChatParticipantType: undefined | ParticipantType; isConversationalSurvey: boolean; isConversationalSurveyEnabled: boolean; isUserAuthenticated: boolean; }; uiStates: { showConfirmationPane: boolean; showStartChatErrorPane: boolean; showEmailTranscriptPane: boolean; disableVideoCall: boolean; showCallingPopup: boolean; disableRemoteVideo: boolean; disableSelfVideo: boolean; isIncomingCall: boolean; focusChatButton: boolean; }; }