/** * AV (Actividad Vulnerable) Clients Resource * * Extends MexClientsResource with AV-scoped behavior. * AV clients are a passthrough to MX level with scopes: ["MX", "MX:AV"]. * Returns MexAVClient models. */ import type { AtomicBatchResult, ClientRelationshipType, ClientSort, CreateBankAccountInput, CreateClientInput, CreateContactMethodInput, CreateMexAddressInput, CreateMexClientInput, LinkedClient as LinkedClientInput, ListOptions, MexClientFilter, MexClientSort, PaginatedResponse, PartialBatchResult, SyncCreateDocumentInput, SyncItem, SyncResult, SyncUpdateDocumentInput, UpdateBankAccountInput, UpdateClientInput, UpdateContactMethodInput, UpdateMexAddressInput, UpdateMexClientInput, UpsertMexClientInput, UpsertResult } from "@artu-ai/shared"; import { type ClientData, ContactMethod, Document, LinkedClient, MexAddress, MexAVClient, MexBankAccount } from "../../../models"; import { type ClientIncludeMap } from "../../clients"; import type { RelatedPartySubresource } from "../../related-parties/base"; import { MexClientsResource } from "../clients"; /** * AV (Actividad Vulnerable) scoped clients resource. * * Passthrough to MX level with AV scope marker. */ export declare class AVClientsResource extends MexClientsResource { readonly legalRepresentatives: RelatedPartySubresource; readonly controllingBeneficiaries: RelatedPartySubresource; create(data: CreateMexClientInput): Promise; retrieve(id: string, options?: { include?: ClientIncludeMap; crossScope?: boolean; }): Promise; retrieveByExternalId(externalId: string, opts?: { crossScope?: boolean; }): Promise; update(id: string, data: UpdateMexClientInput): Promise; list(options?: ListOptions & { includePrimaryContacts?: boolean; includeNonPrimary?: boolean; crossScope?: boolean; }): Promise>; iterate(options?: { filter?: MexClientFilter; sort?: MexClientSort; pageSize?: number; crossScope?: boolean; }): AsyncGenerator; count(filter?: MexClientFilter, options?: { includeNonPrimary?: boolean; crossScope?: boolean; }): Promise; createMany(clients: CreateMexClientInput[], options?: { atomic?: true; }): Promise>; createMany(clients: CreateMexClientInput[], options: { atomic: false; }): Promise>; updateMany(updates: { id: string; data: UpdateMexClientInput; }[], options?: { atomic?: true; }): Promise>; updateMany(updates: { id: string; data: UpdateMexClientInput; }[], options: { atomic: false; }): Promise>; upsertByExternalId(data: UpsertMexClientInput): Promise>; upsertManyByExternalId(clients: UpsertMexClientInput[], options?: { atomic?: true; }): Promise>>; upsertManyByExternalId(clients: UpsertMexClientInput[], options: { atomic: false; }): Promise>>; linkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType, metadata?: Record): Promise; unlinkClient(parentClientId: string, childClientId: string, relationshipType: ClientRelationshipType): Promise; listLinkedClients(parentClientId: string, relationshipType?: ClientRelationshipType): Promise; setLinkedClients(parentClientId: string, linkedClients: LinkedClientInput[]): Promise; syncAll(clientId: undefined, data: { client: CreateMexClientInput; addresses?: SyncItem[]; contactMethods?: SyncItem[]; bankAccounts?: SyncItem[]; documents?: SyncItem[]; linkedClients?: LinkedClientInput[]; }, options?: { replaceMode?: boolean; }): Promise<{ client: MexAVClient; addresses: SyncResult; contactMethods: SyncResult; bankAccounts: SyncResult; documents: SyncResult; }>; syncAll(clientId: string, data: { client?: UpdateMexClientInput; addresses?: SyncItem[]; contactMethods?: SyncItem[]; bankAccounts?: SyncItem[]; documents?: SyncItem[]; linkedClients?: LinkedClientInput[]; }, options: { replaceMode: true; }): Promise<{ client: MexAVClient; addresses: SyncResult; contactMethods: SyncResult; bankAccounts: SyncResult; documents: SyncResult; }>; syncAll(clientId: string, data: { client?: UpdateMexClientInput; addresses?: SyncItem[]; contactMethods?: SyncItem[]; bankAccounts?: SyncItem[]; documents?: SyncItem[]; linkedClients?: LinkedClientInput[]; }, options?: { replaceMode?: boolean; }): Promise<{ client: MexAVClient; addresses: SyncResult; contactMethods: SyncResult; bankAccounts: SyncResult; documents: SyncResult; }>; protected applyScopeToSort(sort?: MexClientSort): ClientSort | undefined; /** * Transforms MX input to nested API format with AV scope marker. */ protected transformToNested(data: CreateMexClientInput): CreateClientInput; protected transformUpdateToNested(data: UpdateMexClientInput): UpdateClientInput; protected instantiate(data: ClientData): MexAVClient; /** Materializes a raw payload into a {@link MexAVClient} (return type narrowed via the `instantiate` override). */ materialize(data: ClientData): MexAVClient; }