import { Repository } from "typeorm";
import { CreateProductoDto } from "./dto/create-producto.dto";
import { UpdateProductoDto } from "./dto/update-producto.dto";
import { ProductoLocal } from "./entities/producto-local.entity";
import { Producto } from "./entities/producto.entity";
export type ProductoView = {
    plu: string;
    desclarga: string;
    desccorta?: string;
    alterno?: string;
    precio: number;
    pagaiva: boolean;
    iva: number;
    es_servicio: boolean;
    usainventario: boolean;
    estaller: boolean;
    origen: "local" | "erp";
};
export declare class ProductosService {
    private localProductoRepository;
    private erpProductoRepository;
    private readonly logger;
    private erpHasEstallerColumnPromise;
    constructor(localProductoRepository: Repository<ProductoLocal>, erpProductoRepository: Repository<Producto>);
    search(query: string, limit?: number, esServicio?: boolean, soloTaller?: boolean): Promise<ProductoView[]>;
    findByPlu(plu: string): Promise<ProductoView>;
    findByPlus(plus: string[]): Promise<ProductoView[]>;
    findTopProductos(limit?: number, esServicio?: boolean, soloTaller?: boolean): Promise<ProductoView[]>;
    create(dto: CreateProductoDto): Promise<ProductoView>;
    update(plu: string, dto: UpdateProductoDto): Promise<ProductoView>;
    delete(plu: string): Promise<{
        message: string;
    }>;
    private searchLocal;
    private searchErp;
    private mergeUnique;
    private toView;
    private hasErpEstallerColumn;
    private ensurePluAvailable;
    private ensureAlternoAvailable;
    private generatePlu;
    private upsertProductoInErp;
}
