/** * AVI (Activos Virtuales) Transactions Resource * * Extends MexTransactionsResource with AVI-specific behavior: * - Accepts flattened CreateAVITransactionInput (AVI fields at root level) * - Returns MexAVITransaction models */ import type { AtomicBatchResult, AVITransactionFilter, AVITransactionSort, CreateAVITransactionInput, CreateTransactionInput, ListOptions, PaginatedResponse, PartialBatchResult, RelatedClient, TransactionSort, UpdateAVITransactionInput, UpdateTransactionInput, UpsertAVITransactionInput, UpsertResult } from "@artu-ai/shared"; import { ClientRole } from "@artu-ai/shared"; import { MexAVITransaction, type TransactionData } from "../../../../models"; import { AVTransactionsResource } from "../transactions"; /** * AVI (Activos Virtuales) scoped transactions resource. * * @example * ```typescript * const aviSdk = new ComplianceSDK({ * apiKey, * scope: "MX", * actividadVulnerable: CodigoActividad.AVI, * }); * * // Create with fully flattened input * const txn = await aviSdk.transactions.create({ * amount: 50000, * currency: "MXN", * timestamp: new Date(), * operationType: "buy", * crypto: "BTC", * hash: "ABC123DEF456", * }); * * // Returns MexAVITransaction * console.log(txn.operationType); * ``` */ export declare class AVITransactionsResource extends AVTransactionsResource { protected static readonly SCOPE_PATH: string[]; create(data: CreateAVITransactionInput): Promise; retrieve(id: string, opts?: { crossScope?: boolean; }): Promise; retrieveByMetadata(key: string, value: string, opts?: { crossScope?: boolean; }): Promise; update(id: string, data: UpdateAVITransactionInput): Promise; /** * Lists AVI transactions with optional filtering. * * Accepts flattened AVI filter (future AVI-specific transaction fields at root level). */ list(options?: ListOptions & { crossScope?: boolean; }): Promise>; /** * Iterates over AVI transactions. * * Accepts flattened AVI filter (future AVI-specific transaction fields at root level). */ iterate(options?: { filter?: AVITransactionFilter; sort?: AVITransactionSort; pageSize?: number; crossScope?: boolean; }): AsyncGenerator; /** * Counts AVI transactions matching the given filter. * * @param filter - Optional filter criteria (with AVI fields at root level) * @returns The count of matching transactions */ count(filter?: AVITransactionFilter, options?: { crossScope?: boolean; }): Promise; listByClient(clientId: string, options?: { cursor?: string; limit?: number; }): Promise>; linkClient(transactionId: string, clientId: string, role?: ClientRole): Promise; unlinkClient(transactionId: string, clientId: string): Promise; setClients(transactionId: string, clients: RelatedClient[]): Promise; createMany(transactions: CreateAVITransactionInput[], options?: { atomic?: true; }): Promise>; createMany(transactions: CreateAVITransactionInput[], options: { atomic: false; }): Promise>; updateMany(updates: { id: string; data: UpdateAVITransactionInput; }[], options?: { atomic?: true; }): Promise>; updateMany(updates: { id: string; data: UpdateAVITransactionInput; }[], options: { atomic: false; }): Promise>; /** * Creates or updates an AVI transaction by externalId. * * @param data - Transaction upsert data with AVI fields at root level (must include externalId) * @returns The created or updated transaction with action indicator */ upsertByExternalId(data: UpsertAVITransactionInput): Promise>; /** * Creates or updates multiple AVI transactions by externalId. * * @param transactions - Array of transaction upsert data (each must include externalId) * @param options - Batch options (atomic: true by default) * @returns Atomic result with data array, or partial result with succeeded/failed */ upsertManyByExternalId(transactions: UpsertAVITransactionInput[], options?: { atomic?: true; }): Promise>>; upsertManyByExternalId(transactions: UpsertAVITransactionInput[], options: { atomic: false; }): Promise>>; /** * Transforms a flattened AVITransactionSort to nested TransactionSort format. * * Maps flattened field names to their full API paths. */ protected applyScopeToSort(sort?: AVITransactionSort): TransactionSort | undefined; protected transformToNested(data: CreateAVITransactionInput): CreateTransactionInput; protected transformUpdateToNested(data: UpdateAVITransactionInput): UpdateTransactionInput; protected instantiate(data: TransactionData): MexAVITransaction; /** Materializes a raw payload into a {@link MexAVITransaction} (return type narrowed via the `instantiate` override). */ materialize(data: TransactionData): MexAVITransaction; }