import { TelegramService } from "./TelegramService";
import { IMessageRepository } from "../repositories/IMessageRepository";
import { IConversationRepository } from "../repositories/IConversationRepository";
import { Message } from "../entities/Message";
export interface SendTelegramMessageRequest {
    organizationId: string;
    conversationId: string;
    chatId: number;
    text: string;
    options?: {
        parse_mode?: "HTML" | "Markdown";
        reply_markup?: any;
        reply_to_message_id?: number;
    };
}
export interface SendTelegramInteractiveMessageRequest extends SendTelegramMessageRequest {
    buttons: Array<Array<{
        text: string;
        callback_data: string;
    }>>;
}
export declare class TelegramSenderService {
    private telegramService;
    private messageRepository;
    private conversationRepository;
    constructor(telegramService: TelegramService, messageRepository: IMessageRepository, conversationRepository: IConversationRepository);
    /**
     * Envía un mensaje de texto a Telegram y lo guarda en la base de datos
     */
    sendMessage(request: SendTelegramMessageRequest): Promise<Message>;
    /**
     * Envía un mensaje interactivo con botones a Telegram
     */
    sendInteractiveMessage(request: SendTelegramInteractiveMessageRequest): Promise<Message>;
    /**
     * Responde a un callback query de Telegram
     */
    answerCallbackQuery(callbackQueryId: string, text?: string): Promise<void>;
    /**
     * Envía una respuesta automática basada en el contenido del mensaje
     */
    sendAutoResponse(organizationId: string, conversationId: string, chatId: number, userMessage: string): Promise<Message>;
    /**
     * Envía un mensaje de bienvenida
     */
    sendWelcomeMessage(organizationId: string, conversationId: string, chatId: number, userName: string): Promise<Message>;
    /**
     * Envía un mensaje de despedida
     */
    sendGoodbyeMessage(organizationId: string, conversationId: string, chatId: number): Promise<Message>;
    /**
     * Envía un mensaje de error
     */
    sendErrorMessage(organizationId: string, conversationId: string, chatId: number, errorMessage: string): Promise<Message>;
    /**
     * Genera una respuesta básica basada en palabras clave
     */
    private generateBasicResponse;
    /**
     * Actualiza el lastMessageAt de la conversación
     */
    private updateConversationLastMessage;
}
//# sourceMappingURL=TelegramSenderService.d.ts.map