/** * Mexico INM (Inmuebles - Real Estate Sale/Purchase) Transaction * * Specialized for real estate sale/purchase transactions. */ import type { inm } from "@artu-ai/shared"; import { MexAVTransaction } from "../MexAVTransaction"; /** * Mexico INM Transaction Model. * * Provides typed accessors for real estate sale/purchase transaction data. * INM transactions have property details nested under `property` and a payments[] array. * * @example * ```typescript * if (txn instanceof MexINMTransaction) { * console.log(`Operation: ${txn.operationType}`); * console.log(`Property type: ${txn.property?.type}`); * console.log(`Folio Real: ${txn.property?.folioReal}`); * console.log(`Payments: ${txn.payments.length}`); * } * ``` */ export declare class MexINMTransaction extends MexAVTransaction { /** * INM-specific transaction data */ protected get inmData(): inm.INMTransactionData | undefined; /** * Operation type */ get operationType(): string | undefined; /** * Client figure (Vendedor or Comprador) */ get figuraCliente(): string | undefined; /** * Obliged subject figure (Vendedor, Comprador, or Intermediario) */ get figuraSO(): string | undefined; /** * Array of property details for this transaction * * @example * ```typescript * txn.inmuebles[0]?.type // "1" (Casa) * txn.inmuebles[0]?.value // "1500000" * txn.inmuebles[0]?.colonia // "Roma Norte" * txn.inmuebles[0]?.folioReal // "12345" * ``` */ get inmuebles(): inm.INMPropertyData[]; /** * Array of payments for this transaction */ get payments(): inm.INMPaymentData[]; /** * Whether this transaction has any payments */ get hasPayments(): boolean; /** * Total number of payments in this transaction */ get paymentsCount(): number; /** * Total payment amount across all payments */ get totalPaymentAmount(): number; toString(): string; } import type { TransactionModel } from "../../../types"; /** * Check if transaction is an INM (Inmuebles) transaction */ export declare function isMexINMTransaction(txn: TransactionModel): txn is MexINMTransaction;