whatsapp-crm-common
Version:
Componentes compartidos para servicios de WhatsApp CRM - Common utilities and types for WhatsApp CRM system
91 lines • 2.71 kB
TypeScript
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