/** * MPC (Mutuo, Préstamos y Créditos) Transactions Resource * * Extends MexTransactionsResource with MPC-specific behavior: * - Accepts flattened CreateMPCTransactionInput (MPC fields at root level) * - Returns MexMPCTransaction models * - Handles operationType, postalCode, collateral[] array, disbursements[] array */ import type { AtomicBatchResult, CreateMPCTransactionInput, CreateTransactionInput, ListOptions, MPCTransactionFilter, MPCTransactionSort, PaginatedResponse, PartialBatchResult, RelatedClient, TransactionSort, UpdateMPCTransactionInput, UpdateTransactionInput, UpsertMPCTransactionInput, UpsertResult } from "@artu-ai/shared"; import { MexMPCTransaction, type TransactionData } from "../../../../models"; import { AVTransactionsResource } from "../transactions"; /** * MPC (Mutuo, Préstamos y Créditos) scoped transactions resource. * * @example * ```typescript * const mpcSdk = new ComplianceSDK({ * apiKey, * scope: "MX:AV:MPC", * }); * * const txn = await mpcSdk.transactions.create({ * amount: 1500000, * currency: "MXN", * timestamp: new Date(), * operationType: "402", * postalCode: "06700", * collateral: [ * { * tipoGarantia: "2", * bienMutuo: { * kind: "inmueble", * tipoInmueble: "1", * valorReferencia: "1500000.00", * postalCode: "06700", * folioReal: "FR-001", * }, * }, * ], * disbursements: [ * { monetaryInstrument: "1", currency: "MXN", amount: "1500000.00" } * ], * relatedClientIds: [client.id], * }); * ``` */ export declare class MPCTransactionsResource extends AVTransactionsResource { protected static readonly SCOPE_PATH: string[]; create(data: CreateMPCTransactionInput): Promise; retrieve(id: string, opts?: { crossScope?: boolean; }): Promise; retrieveByMetadata(key: string, value: string, opts?: { crossScope?: boolean; }): Promise; update(id: string, data: UpdateMPCTransactionInput): Promise; list(options?: ListOptions & { crossScope?: boolean; }): Promise>; iterate(options?: { filter?: MPCTransactionFilter; sort?: MPCTransactionSort; pageSize?: number; crossScope?: boolean; }): AsyncGenerator; count(filter?: MPCTransactionFilter, 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: CreateMPCTransactionInput[], options?: { atomic?: true; }): Promise>; createMany(transactions: CreateMPCTransactionInput[], options: { atomic: false; }): Promise>; updateMany(updates: { id: string; data: UpdateMPCTransactionInput; }[], options?: { atomic?: true; }): Promise>; updateMany(updates: { id: string; data: UpdateMPCTransactionInput; }[], options: { atomic: false; }): Promise>; upsertByExternalId(data: UpsertMPCTransactionInput): Promise>; upsertManyByExternalId(transactions: UpsertMPCTransactionInput[], options?: { atomic?: true; }): Promise>>; upsertManyByExternalId(transactions: UpsertMPCTransactionInput[], options: { atomic: false; }): Promise>>; protected transformToNested(data: CreateMPCTransactionInput): CreateTransactionInput; protected transformUpdateToNested(data: UpdateMPCTransactionInput): UpdateTransactionInput; protected instantiate(data: TransactionData): MexMPCTransaction; /** Materializes a raw payload into a {@link MexMPCTransaction} (return type narrowed via the `instantiate` override). */ materialize(data: TransactionData): MexMPCTransaction; protected applyScopeToSort(sort?: MPCTransactionSort): TransactionSort | undefined; }