export interface CustomerResult { id: string; name: string; /** Identificador fiscal (RFC u homólogo): dato de la org, sin formato hardcodeado. */ tax_id?: string; phone?: string; email?: string; plate?: string; vin?: string; /** Saldo por cobrar (adeudo). */ balance?: number; credit_limit?: number; /** Alertas visibles: «Cliente con adeudo vencido», «Lista negra». */ alerts?: string[]; } export interface CustomerPickerProps { value: CustomerResult | null; /** Evento único de cambio: cliente elegido/creado, o `null` al limpiar. */ onChange: (customer: CustomerResult | null) => void; /** Búsqueda (nombre, ID fiscal, teléfono, placa, VIN). */ search: (q: string, signal: AbortSignal) => Promise; /** Modelo del kernel para el alta rápida. Default `Customer`. */ model?: string; /** Endpoint CRUD del alta. Default `/data//me`. */ endpoint?: string; /** Convierte el registro guardado a `CustomerResult`. Default: id + name. */ mapRecord?: (rec: Record) => CustomerResult; /** Valida el ID fiscal según la config de la org; devuelve el mensaje o undefined. */ validateTaxId?: (taxId: string) => string | undefined; /** Overrides de permiso (default `.create` con useCan). */ canCreate?: boolean; /** Override de permiso para editar al elegido (default `.update`). */ canEdit?: boolean; /** Valores iniciales del alta rápida (p. ej. el texto buscado como nombre). */ createDefaults?: Record; currency?: string; disabled?: boolean; placeholder?: string; } /** * @deprecated Configuración fina de {@link RecordPicker}; se conserva para no * romper consumidores. */ export declare function CustomerPicker({ value, onChange, search, model, endpoint, mapRecord, validateTaxId, canCreate, canEdit, createDefaults, currency, disabled, placeholder, }: CustomerPickerProps): import("react").JSX.Element; //# sourceMappingURL=customer-picker.d.ts.map