import { IChannelService, ChannelMessage, ChannelContact, SendMessageRequest, ChannelConfig } from "./IChannelService";
import { TelegramService } from "./TelegramService";
import { IMessageRepository } from "../repositories/IMessageRepository";
import { IConversationRepository } from "../repositories/IConversationRepository";
import { IChannelRepository } from "../repositories/IChannelRepository";
import { Message } from "../entities/Message";
import { Conversation } from "../entities/Conversation";
export interface TelegramConfig extends ChannelConfig {
    botToken: string;
    webhookUrl?: string;
    botUsername?: string;
    autoResponse?: boolean;
    welcomeMessage?: string;
}
export declare class TelegramChannelService implements IChannelService {
    private telegramService;
    private messageRepository;
    private conversationRepository;
    private channelRepository;
    constructor(telegramService: TelegramService, messageRepository: IMessageRepository, conversationRepository: IConversationRepository, channelRepository: IChannelRepository);
    processIncomingMessage(organizationId: string, channelId: string, message: ChannelMessage): Promise<{
        conversation: Conversation;
        message: Message;
    }>;
    sendMessage(request: SendMessageRequest): Promise<Message>;
    validateConfig(config: ChannelConfig): Promise<boolean>;
    getContactInfo(organizationId: string, channelId: string, contactId: string): Promise<ChannelContact>;
    verifyWebhook(payload: any, signature: string, config: ChannelConfig): Promise<boolean>;
    getChannelType(): string;
    /**
     * Procesa un update de Telegram
     */
    processTelegramUpdate(organizationId: string, channelId: string, update: any): Promise<{
        conversation: Conversation;
        message: Message;
    } | null>;
    /**
     * Extrae un mensaje del update de Telegram
     */
    private extractMessageFromUpdate;
    /**
     * Extrae mensaje de un objeto message de Telegram
     */
    private extractMessageFromMessage;
    /**
     * Extrae mensaje de un callback query de Telegram
     */
    private extractMessageFromCallbackQuery;
}
//# sourceMappingURL=TelegramChannelService.d.ts.map