import { MessageService } from './message.service';
import { BulkMessageService } from './bulk-message.service';
import { SendTextMessageDto, SendMediaMessageDto, MessageResponseDto } from './dto';
import { SendBulkMessageDto, BulkMessageResponseDto } from './dto/bulk-message.dto';
export declare class MessageController {
    private readonly messageService;
    private readonly bulkMessageService;
    constructor(messageService: MessageService, bulkMessageService: BulkMessageService);
    getMessages(sessionId: string, chatId?: string, limit?: string, offset?: string): Promise<{
        messages: import("./entities/message.entity").Message[];
        total: number;
    }>;
    sendText(sessionId: string, dto: SendTextMessageDto): Promise<MessageResponseDto>;
    sendImage(sessionId: string, dto: SendMediaMessageDto): Promise<MessageResponseDto>;
    sendVideo(sessionId: string, dto: SendMediaMessageDto): Promise<MessageResponseDto>;
    sendAudio(sessionId: string, dto: SendMediaMessageDto): Promise<MessageResponseDto>;
    sendDocument(sessionId: string, dto: SendMediaMessageDto): Promise<MessageResponseDto>;
    sendLocation(sessionId: string, dto: {
        chatId: string;
        latitude: number;
        longitude: number;
        description?: string;
        address?: string;
    }): Promise<MessageResponseDto>;
    sendContact(sessionId: string, dto: {
        chatId: string;
        contactName: string;
        contactNumber: string;
    }): Promise<MessageResponseDto>;
    sendSticker(sessionId: string, dto: SendMediaMessageDto): Promise<MessageResponseDto>;
    reply(sessionId: string, dto: {
        chatId: string;
        quotedMessageId: string;
        text: string;
    }): Promise<MessageResponseDto>;
    forward(sessionId: string, dto: {
        fromChatId: string;
        toChatId: string;
        messageId: string;
    }): Promise<MessageResponseDto>;
    react(sessionId: string, dto: {
        chatId: string;
        messageId: string;
        emoji: string;
    }): Promise<{
        success: boolean;
    }>;
    getReactions(sessionId: string, chatId: string, messageId: string): Promise<import("../../engine/interfaces/whatsapp-engine.interface").MessageReaction[]>;
    deleteMessage(sessionId: string, dto: {
        chatId: string;
        messageId: string;
        forEveryone?: boolean;
    }): Promise<{
        success: boolean;
    }>;
    sendBulk(sessionId: string, dto: SendBulkMessageDto): Promise<BulkMessageResponseDto>;
    getBatchStatus(sessionId: string, batchId: string): Promise<{
        batchId: string;
        status: import("./entities/message-batch.entity").BatchStatus;
        progress: import("./entities/message-batch.entity").BatchProgress;
        results: import("./entities/message-batch.entity").BatchMessageResult[];
        startedAt: Date | null;
        completedAt: Date | null;
    }>;
    cancelBatch(sessionId: string, batchId: string): Promise<{
        batchId: string;
        status: import("./entities/message-batch.entity").BatchStatus;
        progress: import("./entities/message-batch.entity").BatchProgress;
    }>;
}
