import { EventEmitter as EE } from 'ee-ts'; import type { MemoryCard } from '@juzi/wechaty-puppet/dist/esm/src/config'; import { CacheManager } from './data/cache-manager.js'; import type { ManagerEvents } from './manager-event.js'; import type { PuppetWhatsAppOptions } from './puppet-whatsapp.js'; import { RequestManager } from './request/request-manager.js'; import type { GroupChat, WhatsAppContact, WhatsAppMessage } from './schema/whatsapp-type.js'; import WhatsAppManager from './whatsapp/whatsapp-manager.js'; import * as PUPPET from '@juzi/wechaty-puppet'; export default class Manager extends EE { private options; whatsAppManager: WhatsAppManager; private cacheManager?; private _requestManager?; private scheduleManager; private memory?; private fetchingMessages; private heartbeatTimer?; private selfId; constructor(options: PuppetWhatsAppOptions); getMemory(): MemoryCard; /** * Lifecycle */ start(memory?: MemoryCard): Promise; stop(): Promise; get requestManager(): RequestManager; getWhatsAppClient(): import("@juzi/whatsapp-web.js").Client; /** * LOGIC METHODS */ /** * Fetch history messages of contact or room, and then call onMessage method to emit them or not. * @param {WhatsAppContact} contactOrRoom contact or room instance */ processHistoryMessages(contactOrRoom: WhatsAppContact): Promise; private fetchMessages; private filterFetchedMessages; private processFetchedMessages; getRoomChatById(roomId: string): Promise; /** * Get member id list from web api * @param { PuppetWhatsApp } this whatsapp client * @param { string } roomId roomId * @returns { string[] } member id list */ syncRoomMemberList(roomId: string): Promise; syncContactOrRoomList(): Promise; processMessage(message: WhatsAppMessage): Promise; /** * Cache Section */ initCache(userId: string): Promise; releaseCache(): Promise; getCacheManager(): Promise; /** * Schedule */ startSchedule(): void; stopSchedule(): void; /** * Heatbeat */ private startHeartbeat; private stopHeartbeat; private asystoleCount; private heartbeat; onDirty(data: PUPPET.payloads.EventDirty): Promise; } //# sourceMappingURL=manager.d.ts.map