import { Contact } from '../entities/Contact';
import { IContactRepository } from '../repositories/IContactRepository';
import { IContactCommunicationPlatformRepository } from '../repositories/IContactCommunicationPlatformRepository';
export interface ConversationIntegrationService {
    /**
     * Crea o actualiza un contacto cuando llega una nueva conversación
     */
    handleNewConversation(conversationData: NewConversationData): Promise<Contact>;
    /**
     * Busca un contacto por su ID en una plataforma específica
     */
    findContactByPlatformId(platformId: string, platform: string, organizationId: string): Promise<Contact | null>;
    /**
     * Obtiene todas las plataformas de comunicación de un contacto
     */
    getContactPlatforms(contactId: string, organizationId: string): Promise<any[]>;
    /**
     * Envía un mensaje a un contacto a través de una plataforma específica
     */
    sendMessageToContact(contactId: string, platform: string, message: string, organizationId: string): Promise<any>;
}
export interface NewConversationData {
    organizationId: string;
    externalId: string;
    name?: string;
    platform: string;
    platformUserId?: string;
    platformUsername?: string;
    contactEmail?: string;
    contactPhone?: string;
    metadata?: any;
}
export declare class ConversationIntegrationServiceImpl implements ConversationIntegrationService {
    private contactRepository;
    private platformRepository;
    private conversationsServiceUrl;
    constructor(contactRepository: IContactRepository, platformRepository: IContactCommunicationPlatformRepository, conversationsServiceUrl?: string);
    handleNewConversation(conversationData: NewConversationData): Promise<Contact>;
    findContactByPlatformId(platformId: string, platform: string, organizationId: string): Promise<Contact | null>;
    getContactPlatforms(contactId: string, organizationId: string): Promise<any[]>;
    sendMessageToContact(contactId: string, platform: string, message: string, organizationId: string): Promise<any>;
    private triggerLeadCreation;
}
//# sourceMappingURL=ConversationIntegrationService.d.ts.map