import type { RequestContext } from "../config/index.js"; export type UserChatState = "opened" | "queued" | "snoozed" | "closed"; export type MissedReason = string; export type AutoAssignPriority = "high" | "medium" | "low"; export type UserChatSubtextType = "description" | "incoming"; export type UserChatGoalState = "achieved" | "waiting" | "notAchieved" | "none"; export type UserChatAlfState = "inProgress" | "completed"; export type AlfState = "NONE"; export type UserChatMedium = "inAppChat" | "appKakao" | "appLine" | "appNaverTalk" | "appInstagramMessenger" | "call" | "email"; export interface UserChatSourceMarketing { id?: string; type?: string; } export interface UserChatSourceSupportBot { id?: string; revisionId?: string; sectionPath?: string[]; } export interface UserChatSourceWorkflow { id?: string; revisionId?: string; traceId?: string; sectionPath?: string[]; causeOfEnd?: string; } export interface UserChatSourceAppMessenger { id?: string; mediumType?: string; displayName?: string; } export interface UserChatSource { page?: string; marketing?: UserChatSourceMarketing; supportBot?: UserChatSourceSupportBot; workflow?: UserChatSourceWorkflow; appMessenger?: UserChatSourceAppMessenger; } export type UserChatProfile = Record; export interface WorkflowTrace { id: string; workflowId: string; revisionId: string; sectionPath: string[]; actionIndex: number; ended: boolean; previousTrace?: WorkflowTrace; } export interface ButtonSectionInfo { sectionId: string; revisionId: string; } export interface Button { id: string; type?: string; } export interface HandlingBase { type: string; } export interface HandlingWorkflowFields extends HandlingBase { id?: string; trace?: WorkflowTrace; buttons?: Button[]; triggerMessageId?: string; nextSectionId?: string; paused?: boolean; charged?: boolean; opened?: boolean; language?: string; postbackButtonMessageSuccess?: boolean; validButtonResponse?: boolean; buttonSectionStack?: ButtonSectionInfo[]; } export interface HandlingWorkflow extends HandlingWorkflowFields { type: "workflow"; } export interface HandlingIvr extends HandlingWorkflowFields { type: "ivr"; inputs?: unknown[]; } export interface HandlingCollectUserReply extends HandlingWorkflowFields { type: "collectUserReply"; } export interface HandlingSupportBot extends HandlingBase { type: "supportBot"; id?: string; revisionId?: string; sectionPath?: string[]; pausedStepIndex?: number; pausedMessageId?: string; } export interface HandlingFollowUpMandatory extends HandlingBase { type: "followUpMandatory"; previous?: HandlingWorkflow; } export interface HandlingWaitingToStartChat extends HandlingBase { type: "waitingToStartChat"; } export interface HandlingAlf extends HandlingWorkflowFields { type: "alf"; actionProcessId?: string; state?: AlfState; additionalRoleDescription?: string; enableOpenChat?: boolean; alfBotId?: string; alfLanguage?: string; revisionId?: string; sectionPath?: string[]; pausedStepIndex?: number; pausedMessageId?: string; alfBot?: unknown; } export type UserChatHandling = HandlingWorkflow | HandlingIvr | HandlingCollectUserReply | HandlingSupportBot | HandlingFollowUpMandatory | HandlingWaitingToStartChat | HandlingAlf | undefined; export interface UserChat { id: string; channelId: string; managedStateKey?: string; managedAssigneeStateKey?: string; managedTeamNoAssigneeStateKey?: string; alfStateKey?: string; managedSyncAssigneeStateKey?: string; contactKey?: string; contactOrder?: number; contactMediumType?: UserChatMedium; liveMeetId?: string; sync?: boolean; state?: UserChatState; missedReason?: MissedReason; managed?: boolean; priority?: AutoAssignPriority; userId?: string; xerId?: string; name?: string; title?: string; description?: string; subtextType?: UserChatSubtextType; handling?: UserChatHandling; source?: UserChatSource; managerIds?: Set; assigneeId?: string; teamId?: string; tags?: Set; profile?: UserChatProfile; goalEventName?: string; goalEventQuery?: unknown; goalCheckedAt?: string; goalState?: UserChatGoalState; firstOpenedAt?: string; openedAt?: string; firstQueuedAt?: string; queuedAt?: string; createdAt: string; updatedAt: string; frontMessageId?: string; frontUpdatedAt?: string; deskMessageId?: string; summarizedMessageId?: string; deskUpdatedAt?: string; userLastMessageId?: string; followUpTriggeredAt?: string; firstAssigneeIdAfterOpen?: string; firstRepliedAt?: string; firstRepliedAtAfterOpen?: string; oneStop?: boolean; waitingTime?: number; avgReplyTime?: number; totalReplyTime?: number; replyCount?: number; resolutionTime?: number; operationWaitingTime?: number; operationAvgReplyTime?: number; operationTotalReplyTime?: number; operationReplyCount?: number; operationResolutionTime?: number; askedAt?: string; accessLog?: unknown; firstAskedAt?: string; closedAt?: string; snoozedAt?: string; expiresAt?: string; removedAt?: string; version?: number; managerWaitingMessageId?: string; userWaitingMessageId?: string; lastInboundEmailId?: string; alfRequestedAt?: string; } /** * Fetches a user chat item from DynamoDB by its ID. */ export declare function getUserChat(userChatId: string, context: RequestContext): Promise; //# sourceMappingURL=user-chat.repository.d.ts.map