/** * Mexico INM (Inmuebles - Real Estate Sale/Purchase) Product * * Specialized for real estate sale/purchase product templates. */ import type { INMProductData } from "@artu-ai/shared"; import { MexAVProduct } from "../MexAVProduct"; /** * Mexico INM Product Model. * * Provides typed accessors for real estate sale/purchase product data. * * INM products carry their inmueble defaults under `inmuebles[0]` and * payment defaults under `payments[0]` — single-element arrays that * mirror the transaction shape so the centralized product->transaction * deepMerge auto-seeds the first inmueble/payment of new transactions. * * @example * ```typescript * if (product instanceof MexINMProduct) { * console.log(`Operation: ${product.operationType}`); * console.log(`Property type: ${product.inmueble?.type}`); * console.log(`Payment form: ${product.paymentForm}`); * } * ``` */ export declare class MexINMProduct extends MexAVProduct { /** * INM-specific product data */ protected get inmData(): INMProductData | undefined; /** * Operation type */ get operationType(): string | undefined; /** * Inmueble defaults (first entry of inmuebles[]). Used by linked * transactions to pre-seed `inmuebles[0]`. * * @example * ```typescript * product.inmueble?.type // "1" (Casa) * product.inmueble?.value // "1500000" * product.inmueble?.colonia // "Roma Norte" * product.inmueble?.postalCode // "06700" * ``` */ get inmueble(): NonNullable[number] | undefined; /** * Default payment form (from payments[0]). */ get paymentForm(): string | undefined; /** * Default monetary instrument (from payments[0]). */ get monetaryInstrument(): string | undefined; toString(): string; } import type { Product } from "../../../Product"; /** * Check if product is an INM (Inmuebles) product */ export declare function isMexINMProduct(product: Product): product is MexINMProduct;