import OpenAI from "openai"; import { Message } from "@green-api/whatsapp-chatbot-js-v2"; import { OpenAIModel } from "../types"; /** * Base handler interface for processing different message types */ export interface MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message, openai: OpenAI, model?: string): Promise; } /** * Handles text messages */ export declare class TextMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message): Promise; } /** * Handles image messages */ export declare class ImageMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message, _: OpenAI, model: OpenAIModel): Promise; } /** * Handles video messages */ export declare class VideoMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message): Promise; } /** * Handles audio messages */ export declare class AudioMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message, openai: OpenAI): Promise; private downloadMedia; private transcribeAudio; } /** * Handles document messages */ export declare class DocumentMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message): Promise; } /** * Handles poll messages */ export declare class PollMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message): Promise; } /** * Handles poll update messages */ export declare class PollUpdateMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message): Promise; } /** * Handles location messages */ export declare class LocationMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message): Promise; } /** * Handles contact messages */ export declare class ContactMessageHandler implements MessageHandler { canHandle(message: Message): boolean; processMessage(message: Message): Promise; } /** * Fallback handler for unsupported message types */ export declare class FallbackMessageHandler implements MessageHandler { canHandle(_: Message): boolean; processMessage(message: Message): Promise; } /** * Message handler registry that processes WhatsApp messages for OpenAI */ export declare class MessageHandlerRegistry { private handlers; private readonly openai; private readonly model; constructor(openai: OpenAI, model: OpenAIModel); private registerDefaultHandlers; /** * Replace a handler of a specific type with a new handler * @param handlerType The constructor of the handler type to replace * @param newHandler The new handler to use instead * @returns true if a handler was replaced, false otherwise */ replaceHandler(handlerType: new (...args: any[]) => MessageHandler, newHandler: MessageHandler): boolean; /** * Register a custom message handler * @param handler The handler to register * @param index Optional position to insert the handler (default: before fallback) */ registerHandler(handler: MessageHandler, index?: number): void; /** * Process a message using the appropriate handler */ processMessage(message: Message): Promise; }