/** * Mexico Client Model * * Extends base Client with Mexico-specific accessors. * Provides type-safe access to RFC, CURP, and scope data. */ import type { ClientRelationshipType, MexClientScopeData } from "@artu-ai/shared"; import { Client, type ClientData } from "../Client"; import { MexBankAccount } from "./MexBankAccount"; /** * Client data with Mexico scope */ export type MexClientData = ClientData & { scopeData?: { MX?: MexClientScopeData; [key: string]: unknown; }; }; /** * Mexico Client Model. * * Provides typed accessors for Mexico-specific data: * - RFC (Registro Federal de Contribuyentes) * - CURP (Clave Única de Registro de Población) * - Actividad Económica * - Giro Mercantil * * @example * ```typescript * if (client instanceof MexClient) { * console.log(`RFC: ${client.rfc}`); * console.log(`CURP: ${client.curp}`); * } * ``` */ export declare class MexClient extends Client { /** * Mexico-specific scope data */ protected get mexicoData(): MexClientScopeData | undefined; /** * RFC (Registro Federal de Contribuyentes) * Tax identification number */ get rfc(): string | undefined; /** * CURP (Clave Única de Registro de Población) * Only applicable for personas físicas */ get curp(): string | undefined; /** * Economic activity classification code */ get actividadEconomica(): string | undefined; /** * Business sector (giro mercantil) */ get giroMercantil(): string | undefined; /** * Whether client is registered for any Actividad Vulnerable */ get isActividadVulnerable(): boolean; /** * Activity codes the client is registered for */ get activityCodes(): string[]; /** * Checks if registered for a specific activity */ hasActivity(code: string): boolean; /** * CNBV sujeto codes the client has data for */ get cnbvSujetoCodes(): string[]; /** * Checks if client has data for a specific CNBV sujeto */ hasCNBVSujeto(code: string): boolean; toString(): string; /** * Linked clients (if included) instantiated as MexClient */ get linkedClients(): { relationshipType: ClientRelationshipType; client: MexClient; }[] | undefined; get addresses(): MexAddress[] | undefined; get bankAccounts(): MexBankAccount[] | undefined; } import type { ClientModel } from "../types"; import { MexAddress } from "./MexAddress"; /** * Check if client is a Mexico client */ export declare function isMexClient(client: ClientModel): client is MexClient;