import { Repository } from "typeorm";
import { CreateClienteDto } from "./dto/create-cliente.dto";
import { SearchClienteDto } from "./dto/search-cliente.dto";
import { UpdateClienteDto } from "./dto/update-cliente.dto";
import { ClienteLocal } from "./entities/cliente-local.entity";
import { Cliente } from "./entities/cliente.entity";
type ClienteView = {
    tarjeta: string;
    nombre: string;
    direccion?: string;
    telefono?: string;
    celular?: string;
    nit?: string;
    email?: string;
    comercial?: string;
    razonsocial?: string;
    origen: "local" | "erp";
};
export declare class ClientesService {
    private localClienteRepository;
    private erpClienteRepository;
    private readonly logger;
    constructor(localClienteRepository: Repository<ClienteLocal>, erpClienteRepository: Repository<Cliente>);
    findAll(query: SearchClienteDto): Promise<{
        data: ClienteView[];
        total: number;
        page: number;
        totalPages: number;
    }>;
    findByTarjeta(tarjeta: string): Promise<ClienteView>;
    search(query: string, limit?: number): Promise<ClienteView[]>;
    create(createClienteDto: CreateClienteDto): Promise<ClienteView>;
    update(tarjeta: string, updateClienteDto: UpdateClienteDto): Promise<ClienteView>;
    delete(tarjeta: string): Promise<{
        message: string;
    }>;
    private searchLocal;
    private searchErp;
    private countLocal;
    private countErp;
    private mergeUnique;
    private toView;
    private resolveNombre;
    private ensureTarjetaAvailable;
    private ensureNitAvailable;
    private generateTarjeta;
    private upsertClienteInErp;
}
export {};
