import WhatsAppBase from '../whatsapp-base.js';
import { type WhatsAppMessage, type WhatsAppMessagePayload } from '../../schema/whatsapp-type.js';
export default class MessageEventHandler extends WhatsAppBase {
    onMessage(message: WhatsAppMessage | WhatsAppMessagePayload): Promise<void>;
    /**
     * This event only for the message which sent by bot (web / phone)
     * @param {WhatsAppMessage} message message detail info
     * @returns
     */
    onMessageAck(message: WhatsAppMessage): Promise<void>;
    /**
     * This event only for the message which sent by bot (web / phone) and to the bot self
     * @param {WhatsAppMessage} message message detail info
     * @returns
     */
    onMessageCreate(message: WhatsAppMessage): Promise<void>;
    processMessageFromBot(message: WhatsAppMessage): Promise<void>;
    convertInviteLinkMessageToEvent(message: WhatsAppMessage | WhatsAppMessagePayload): Promise<boolean>;
    onIncomingCall(...args: any[]): Promise<void>;
    onMediaUploaded(message: WhatsAppMessage): Promise<void>;
    createOrUpdateImageMessage(message: WhatsAppMessage): Promise<void>;
    /**
     * Someone delete message in all devices. Due to they have the same message id so we generate a fake id as flash-store key.
     * see: https://github.com/pedroslopez/whatsapp-web.js/issues/1178
     * @param message revoke message
     * @param revokedMsg original message, sometimes it will be null
     */
    onMessageRevokeEveryone(message: WhatsAppMessage, revokedMsg?: WhatsAppMessage | null | undefined): Promise<void>;
    /**
     * Only delete message in bot phone will trigger this event. But the message type is chat, not revoked any more.
     */
    onMessageRevokeMe(message: WhatsAppMessage): Promise<void>;
    generateFakeRecallMessageId(messageId: string): string;
    private checkCacheManager;
}
//# sourceMappingURL=message-event-handler.d.ts.map