/** * ARI (Arrendamiento de Inmuebles - Real Estate Leasing) Transactions Resource * * Extends MexTransactionsResource with ARI-specific behavior: * - Accepts flattened CreateARITransactionInput (ARI fields at root level) * - Returns MexARITransaction models * - Handles lease property fields and payments[] array */ import type { ARITransactionFilter, ARITransactionSort, AtomicBatchResult, CreateARITransactionInput, CreateTransactionInput, ListOptions, PaginatedResponse, PartialBatchResult, RelatedClient, TransactionSort, UpdateARITransactionInput, UpdateTransactionInput, UpsertARITransactionInput, UpsertResult } from "@artu-ai/shared"; import { MexARITransaction, type TransactionData } from "../../../../models"; import { AVTransactionsResource } from "../transactions"; /** * ARI (Arrendamiento de Inmuebles) scoped transactions resource. * * @example * ```typescript * const ariSdk = new ComplianceSDK({ * apiKey, * scope: "MX", * actividadVulnerable: CodigoActividad.ARI, * }); * * const txn = await ariSdk.transactions.create({ * amount: 120000, * currency: "MXN", * timestamp: new Date(), * operationType: "1501", * property: { * type: "1", * leaseStartDate: "2024-01-01", * leaseEndDate: "2024-12-31", * value: "1500000", * colonia: "Roma Norte", * calle: "Álvaro Obregón", * numeroExterior: "100", * postalCode: "06700", * folioReal: "12345", * }, * payments: [ * { paymentDate: "2024-01-01", paymentForm: "1", monetaryInstrument: "1", currency: "MXN", amount: 10000 } * ], * relatedClientIds: [client.id], * }); * ``` */ export declare class ARITransactionsResource extends AVTransactionsResource { protected static readonly SCOPE_PATH: string[]; create(data: CreateARITransactionInput): Promise; retrieve(id: string, opts?: { crossScope?: boolean; }): Promise; retrieveByMetadata(key: string, value: string, opts?: { crossScope?: boolean; }): Promise; update(id: string, data: UpdateARITransactionInput): Promise; list(options?: ListOptions & { crossScope?: boolean; }): Promise>; iterate(options?: { filter?: ARITransactionFilter; sort?: ARITransactionSort; pageSize?: number; crossScope?: boolean; }): AsyncGenerator; count(filter?: ARITransactionFilter, options?: { crossScope?: boolean; }): Promise; listByClient(clientId: string, options?: { cursor?: string; limit?: number; }): Promise>; linkClient(transactionId: string, clientId: string, role?: import("@artu-ai/shared").ClientRole): Promise; unlinkClient(transactionId: string, clientId: string): Promise; setClients(transactionId: string, clients: RelatedClient[]): Promise; createMany(transactions: CreateARITransactionInput[], options?: { atomic?: true; }): Promise>; createMany(transactions: CreateARITransactionInput[], options: { atomic: false; }): Promise>; updateMany(updates: { id: string; data: UpdateARITransactionInput; }[], options?: { atomic?: true; }): Promise>; updateMany(updates: { id: string; data: UpdateARITransactionInput; }[], options: { atomic: false; }): Promise>; upsertByExternalId(data: UpsertARITransactionInput): Promise>; upsertManyByExternalId(transactions: UpsertARITransactionInput[], options?: { atomic?: true; }): Promise>>; upsertManyByExternalId(transactions: UpsertARITransactionInput[], options: { atomic: false; }): Promise>>; protected transformToNested(data: CreateARITransactionInput): CreateTransactionInput; protected transformUpdateToNested(data: UpdateARITransactionInput): UpdateTransactionInput; protected instantiate(data: TransactionData): MexARITransaction; /** Materializes a raw payload into a {@link MexARITransaction} (return type narrowed via the `instantiate` override). */ materialize(data: TransactionData): MexARITransaction; protected applyScopeToSort(sort?: ARITransactionSort): TransactionSort | undefined; }