import { PoolClient } from "pg";
import BaseRepository from "./base-repository";
import { Contact } from "@whiskeysockets/baileys";
export declare class ContactRepository extends BaseRepository {
    /**
     * Guarda múltiples contactos en la base de datos en lotes
     */
    guardarContactosBulk(client: PoolClient, contactos: Contact[], tenantId: string, agentId: number): Promise<void>;
    /**
     * Maneja relaciones entre chats y contactos
     */
    guardarChatContactRelationsBulk(client: PoolClient, relations: Array<{
        chatId: string;
        contactId: string;
    }>, tenantId: string, agentId: number): Promise<void>;
    /**
     * Maneja participantes de grupos
     */
    guardarGroupParticipantsBulk(client: PoolClient, participants: Array<{
        groupId: string;
        contactId: string;
    }>, tenantId: string, agentId: number): Promise<void>;
    /**
     * Crea contactos placeholder para IDs faltantes
     */
    createPlaceholderContacts(client: PoolClient, contactIds: string[], tenantId: string, agentId: number): Promise<void>;
    /**
     * Verifica si los contactos existen y crea placeholders para los faltantes
     */
    ensureContactsExist(client: PoolClient, contactIds: string[], tenantId: string, agentId: number): Promise<void>;
    /**
     * Maneja la inserción o actualización de contactos
     */
    handleContactUpserts(contacts: Contact[], tenantId: string, agentId: number): Promise<void>;
    /**
     * Maneja actualizaciones de contactos
     */
    handleContactUpdates(tenantId: string, agentId: number, updates: Partial<Contact>[]): Promise<void>;
}
//# sourceMappingURL=contact-repository.d.ts.map