import { WacapConfig, SessionInfo, MessageOptions, WacapEventType, EventHandler } from '../types'; import { Session } from './session'; import type { WASocket } from '@whiskeysockets/baileys'; /** * Main wrapper class for managing multiple WhatsApp sessions */ export declare class WacapWrapper { private config; private registry; private storageAdapter; private globalBus; send: { text: (sessionId: string, jid: string, text: string, options?: Partial) => Promise; media: (sessionId: string, jid: string, media: { url?: string; buffer?: Buffer; mimetype?: string; caption?: string; fileName?: string; }) => Promise; location: (sessionId: string, jid: string, latitude: number, longitude: number, options?: { name?: string; address?: string; }) => Promise; contact: (sessionId: string, jid: string, contact: { name: string; phone: string; }) => Promise; contacts: (sessionId: string, jid: string, contacts: Array<{ name: string; phone: string; }>) => Promise; reaction: (sessionId: string, jid: string, messageId: string, emoji: string) => Promise; poll: (sessionId: string, jid: string, name: string, options: string[], selectableCount?: number) => Promise; buttons: (sessionId: string, jid: string, text: string, buttons: Array<{ id: string; text: string; }>, footer?: string) => Promise; list: (sessionId: string, jid: string, title: string, text: string, buttonText: string, sections: Array<{ title: string; rows: Array<{ id: string; title: string; description?: string; }>; }>, footer?: string) => Promise; }; groups: { create: (sessionId: string, subject: string, participants: string[]) => Promise; addParticipants: (sessionId: string, groupId: string, participants: string[]) => Promise; removeParticipants: (sessionId: string, groupId: string, participants: string[]) => Promise; promoteParticipants: (sessionId: string, groupId: string, participants: string[]) => Promise; demoteParticipants: (sessionId: string, groupId: string, participants: string[]) => Promise; getInfo: (sessionId: string, groupId: string) => Promise; updateSubject: (sessionId: string, groupId: string, subject: string) => Promise; updateDescription: (sessionId: string, groupId: string, description: string) => Promise; updateSettings: (sessionId: string, groupId: string, setting: 'announcement' | 'not_announcement' | 'locked' | 'unlocked') => Promise; leave: (sessionId: string, groupId: string) => Promise; getInviteCode: (sessionId: string, groupId: string) => Promise; revokeInviteCode: (sessionId: string, groupId: string) => Promise; joinViaCode: (sessionId: string, inviteCode: string) => Promise; }; contacts: { check: (sessionId: string, phoneNumber: string) => Promise<{ exists: boolean; jid: string; }>; checkMultiple: (sessionId: string, phoneNumbers: string[]) => Promise>; getProfilePicture: (sessionId: string, jid: string, highRes?: boolean) => Promise; getInfo: (sessionId: string, jid: string) => Promise; block: (sessionId: string, jid: string) => Promise; unblock: (sessionId: string, jid: string) => Promise; getBusinessProfile: (sessionId: string, jid: string) => Promise; }; chat: { markAsRead: (sessionId: string, jid: string, messageIds: string[]) => Promise; archive: (sessionId: string, jid: string, archive?: boolean) => Promise; mute: (sessionId: string, jid: string, muteEndTime: number | null) => Promise; pin: (sessionId: string, jid: string, pin?: boolean) => Promise; deleteMessage: (sessionId: string, jid: string, messageId: string, forEveryone?: boolean) => Promise; starMessage: (sessionId: string, jid: string, messageId: string, star?: boolean) => Promise; forwardMessage: (sessionId: string, jid: string, message: any, forceForward?: boolean) => Promise; }; profile: { updateStatus: (sessionId: string, status: string) => Promise; updateName: (sessionId: string, name: string) => Promise; }; presence: { update: (sessionId: string, jid: string | null, presence: 'available' | 'unavailable' | 'composing' | 'recording' | 'paused') => Promise; }; sessions: { start: (sessionId: string, customConfig?: Partial) => Promise; stop: (sessionId: string) => Promise; stopAll: () => Promise; restartAll: () => Promise; startAll: () => Promise; startByIds: (ids: string[], customConfig?: Partial) => Promise; list: () => string[]; info: (sessionId: string) => SessionInfo | null; get: (sessionId: string) => Session | undefined; }; constructor(config?: WacapConfig); /** * Initialize the wrapper */ init(): Promise; /** * Load and start all sessions stored in persistent storage. * Useful for SaaS / warm-boot scenarios. */ loadAllStoredSessions(): Promise; /** * Start all sessions discovered in storage (alias for loadAllStoredSessions) */ startAllSessions(): Promise; /** * Start several sessions by id list */ startByIds(ids: string[], customConfig?: Partial): Promise; /** * Stop all active sessions */ stopAllSessions(): Promise; /** * Restart all currently known sessions */ restartAllSessions(): Promise; private discoverStoredSessionIds; /** * Start a new session or resume existing one */ sessionStart(sessionId: string, customConfig?: Partial): Promise; /** * Stop a session */ sessionStop(sessionId: string): Promise; /** * Find and return a session */ findSession(sessionId: string): Session | undefined; /** * Get all active sessions */ getAllSessions(): Map; /** * Get all session IDs */ getSessionIds(): string[]; /** * Get session info */ getSessionInfo(sessionId: string): SessionInfo | null; /** * Check if session exists */ hasSession(sessionId: string): boolean; /** * Delete session data from storage (logout from WhatsApp) */ deleteSession(sessionId: string): Promise; /** * Logout a session from WhatsApp (removes credentials, requires new QR scan) */ logoutSession(sessionId: string): Promise; /** * Send a text message */ sendMessage(sessionId: string, jid: string, text: string, options?: Partial): Promise; /** * Send media (image, video, audio, document) */ sendMedia(sessionId: string, jid: string, media: { url?: string; buffer?: Buffer; mimetype?: string; caption?: string; fileName?: string; }): Promise; /** * Register event handler for a session */ on(sessionId: string, event: WacapEventType, handler: EventHandler): void; /** * Register one-time event handler for a session */ once(sessionId: string, event: WacapEventType, handler: EventHandler): void; /** * Get raw socket for advanced usage */ getSocket(sessionId: string): WASocket | null; /** * Listen to events from all sessions globally. */ onGlobal(event: WacapEventType, handler: EventHandler): void; onceGlobal(event: WacapEventType, handler: EventHandler): void; /** * Cleanup all sessions and close storage */ destroy(): Promise; } //# sourceMappingURL=wacap-wrapper.d.ts.map