import { UserInfo } from "../Users/UserTrii"; export interface Chat { id: string; spaceId: string; type: ChatType; ownerId: string; chatName: string; chatImage: string; chatMembers: IChatMemeber[]; chatMembersCount: number; remoteAddress: string; remoteAddressId: string; lastMessage: string; lastMessageId?: string; newMessagesCount: number; newMessagesUnread: boolean; pinned: boolean; status: ConversationSatus; archived: boolean; /** Domain objects discussed or served by this conversation. */ contextReferences?: ContextReference[]; finalizedAt: Date; finalizedBy?: string; createdAt: Date; updatedAt: Date; } export interface ContextReference { entityType: ContextType; entityId: string; role?: string; linkedAt: Date; linkedBy?: string; } export declare enum ContextType { TICKET = "TICKET", CONVERSATION = "CONVERSATION", LEAD = "LEAD", DEBT = "DEBT" } export declare enum ChatType { /**messages between two users */ DIRECT = 1, /**messages between multiple users */ GROUP = 2, /**Messages to discuss a conversation */ DISCUSS_CONVERSATION = 11, /**Messages to discuss a ticket */ DISCUSS_TICKET = 12 } export interface IChatMemeber { joinTimeStamp: Date; isAdmin: boolean; userId: string; user: UserInfo; /** Etiqueta del miembro dentro del grupo (B16, acción `updateMemberLabel`). Vacío/ausente = sin etiqueta. */ label?: string; } export declare enum ConversationSatus { NEW = 1, ACTIVE = 2, FINALIZED = 3, ARCHIVED = 4 }