import { MessageDirection, MessageVisibility } from '../Common/Messages/Message'; import { ChannelType } from '../Common/Channels/ChannelType'; import { ITicketActivity } from './Workflow'; export declare enum TicketConversationRole { PRIMARY = "PRIMARY", CUSTOMER = "CUSTOMER", INTERNAL_DISCUSSION = "INTERNAL_DISCUSSION", EXTERNAL_COLLABORATION = "EXTERNAL_COLLABORATION" } export interface ITicketConversationReference { id: string; spaceId: string; ticketId: string; conversationId: string; role: TicketConversationRole; sourceMessageId?: string; channelType?: ChannelType; channelId?: string; isPrimary: boolean; linkedAt: Date; linkedBy?: string; unlinkedAt?: Date; unlinkedBy?: string; } export declare enum TicketMessageActorType { CONTACT = "CONTACT", AGENT = "AGENT", BOT = "BOT", SYSTEM = "SYSTEM", EXTERNAL_COLLABORATOR = "EXTERNAL_COLLABORATOR" } export declare enum TicketMessageEventType { CREATED = "CREATED", UPDATED = "UPDATED", DELETED = "DELETED", DELIVERY_STATUS_CHANGED = "DELIVERY_STATUS_CHANGED" } export interface ITicketMessageEvent { eventId: string; spaceId: string; ticketId: string; conversationId: string; messageId: string; occurredAt: Date; direction: MessageDirection; visibility: MessageVisibility; actorType: TicketMessageActorType; eventType: TicketMessageEventType; } export declare enum TicketTimelineEntryType { ACTIVITY = "ACTIVITY", MESSAGE = "MESSAGE" } export interface ITicketMessageReference { conversationId: string; messageId: string; } export type ITicketTimelineEntry = { id: string; type: TicketTimelineEntryType.ACTIVITY; occurredAt: Date; activity: ITicketActivity; } | { id: string; type: TicketTimelineEntryType.MESSAGE; occurredAt: Date; messageReference: ITicketMessageReference; };