UNPKG

whatsapp-crm-common

Version:

Componentes compartidos para servicios de WhatsApp CRM - Common utilities and types for WhatsApp CRM system

91 lines 2.71 kB
import { Chat, Contact, proto, WAMessage } from "@whiskeysockets/baileys"; import { ChatProcesado } from '../../types/chat-processed'; /** * Interfaz para los datos recibidos del evento messaging-history.set */ interface MessagingHistoryData { chats: Chat[]; contacts: Contact[]; messages: WAMessage[]; isLatest?: boolean; progress?: number | null; syncType?: proto.HistorySync.HistorySyncType; peerDataRequestSessionId?: string | null; } /** * Interfaz para los metadatos de la sincronización */ interface MetadatosSincronizacion { syncType?: proto.HistorySync.HistorySyncType; isLatest?: boolean; progress?: number | null; peerDataRequestSessionId?: string | null; completado: boolean; } /** * Interfaz para el resultado del procesamiento */ export interface ResultadoProcesamiento { [chatId: string]: ChatProcesado | Record<string, Contact> | MetadatosSincronizacion | undefined; todosLosContactos?: Record<string, Contact>; metadatos: MetadatosSincronizacion; } /** * Clase para manejar el historial de mensajes, incluyendo sincronizaciones parciales */ export declare class ManejadorHistoriaChats { private resultado; private historyCache; private maxChats; constructor(maxChats?: number); /** * Procesa los datos del evento messaging-history.set * @param data - Datos del evento * @returns El resultado procesado acumulado */ procesarHistoriaDeChats(data: MessagingHistoryData): ResultadoProcesamiento; /** * Obtiene una clave única para un mensaje */ private getMessageKey; /** * Ordena los mensajes por timestamp */ private ordenarMensajes; /** * Reinicia el procesador para una nueva sincronización completa */ reiniciar(): void; /** * Obtiene el resultado actual, limitando a los N chats más recientes si maxChats > 0 */ obtenerResultado(): ResultadoProcesamiento; /** * Obtiene el timestamp del mensaje más reciente en un chat */ private obtenerTimestampUltimoMensaje; /** * Obtiene el estado serializable del manager para cache distribuido */ getSerializableState(): any; /** * Restaura el estado desde datos serializados */ restoreFromState(state: any): void; /** * Obtiene estadísticas del manager */ getStats(): { chatsCount: number; messagesCount: number; contactsCount: number; cacheSize: number; isCompleted: boolean; }; /** * Obtiene el valor de maxChats (getter para compatibilidad) */ getMaxChats(): number; } export {}; //# sourceMappingURL=history-manager.d.ts.map