import type { ProductQuery, ProductResult } from './product-search'; interface ApiLike { get: (url: string, cfg?: { params?: Record; signal?: AbortSignal; }) => Promise<{ data: any; }>; } export interface CatalogProductSearchOptions { /** Modelo de catálogo. Default `products.Product`. */ model?: string; /** Endpoint de listado. Default `/data/`. */ endpoint?: string; limit?: number; /** Tasa de impuesto cuando el producto no trae la suya (config fiscal de la org; p. ej. 0.16). */ defaultTaxRate?: number; } /** Proyección pura registro del catálogo → ProductResult (exportada para tests). */ export declare function catalogRecordToProduct(rec: Record, defaultTaxRate?: number): ProductResult; export declare function createCatalogProductSearch(api: ApiLike, opts?: CatalogProductSearchOptions): (query: Exclude, signal: AbortSignal) => Promise; /** * Buscador del host (`searchProducts`) con el IVA de la org como respaldo: un * producto que no trae su tasa entra con la de la org en vez de 0 (retest * Pitsline 2026-10-05: el buscador de ops no devolvía tasa y el renglón de la * factura quedaba sin IVA). Sin tasa de org, el buscador queda tal cual. */ export declare function withDefaultTaxRate(search: (query: Q, signal: S) => Promise, defaultTaxRate: number | undefined): (query: Q, signal: S) => Promise; export {}; //# sourceMappingURL=catalog-product-search.d.ts.map