/** * INM (Inmuebles - Real Estate Sale/Purchase) Alerts Resource * * Extends MexAlertsResource with INM-specific behavior: * - Accepts flattened CreateINMAlertInput (INM fields at root level) * - Returns MexINMAlert models */ import type { AlertItemFilter, AlertItemSort, AlertSort, AtomicBatchResult, CreateAlertInput, CreateAlertItemInput, CreateINMAlertInput, CreateINMAlertItemInput, GenerateResult, INMAlertFilter, INMAlertItemFilter, INMAlertSort, InmAlertDefaultsInput, ListOptions, PaginatedResponse, PartialBatchResult, UpdateAlertInput, UpdateAlertItemInput, UpdateINMAlertInput, UpdateINMAlertItemInput, UpsertINMAlertInput, UpsertResult, ValidationResult } from "@artu-ai/shared"; import { ReportType } from "@artu-ai/shared"; import { type AlertClientItemData, type AlertData, type AlertItemData, type AlertTransactionItemData, MexINMAlert, MexINMAlertClientItem, MexINMAlertItem, MexINMAlertTransactionItem } from "../../../../models"; import { AlertItemsResource } from "../../../alert-items"; import { AVAlertsResource } from "../alerts"; /** * INM (Inmuebles - Real Estate Sale/Purchase) scoped alerts resource. * * @example * ```typescript * const inmSdk = new ComplianceSDK({ * apiKey, * scope: "MX:AV:INM", * }); * * const alert = await inmSdk.alerts.create({ * mesReportado: "202401", * }); * * // Returns MexINMAlert * console.log(alert.mesReportado); * ``` */ export declare class INMAlertsResource extends AVAlertsResource { create(data: CreateINMAlertInput): Promise; retrieve(id: string, opts?: { crossScope?: boolean; }): Promise; retrieveByMetadata(key: string, value: string, opts?: { crossScope?: boolean; }): Promise; retrieveByExternalId(externalId: string, opts?: { crossScope?: boolean; }): Promise; update(id: string, data: UpdateINMAlertInput): Promise; list(options?: ListOptions & { crossScope?: boolean; }): Promise>; iterate(options?: { filter?: INMAlertFilter; sort?: INMAlertSort; pageSize?: number; crossScope?: boolean; }): AsyncGenerator; count(filter?: INMAlertFilter, options?: { crossScope?: boolean; }): Promise; createMany(alerts: CreateINMAlertInput[], options?: { atomic?: true; }): Promise>; createMany(alerts: CreateINMAlertInput[], options: { atomic: false; }): Promise>; updateMany(updates: { id: string; data: UpdateINMAlertInput; }[], options?: { atomic?: true; }): Promise>; updateMany(updates: { id: string; data: UpdateINMAlertInput; }[], options: { atomic: false; }): Promise>; upsertByExternalId(data: UpsertINMAlertInput): Promise>; upsertManyByExternalId(alerts: UpsertINMAlertInput[], options?: { atomic?: true; }): Promise>>; upsertManyByExternalId(alerts: UpsertINMAlertInput[], options: { atomic: false; }): Promise>>; addItem(alertId: string, data: CreateINMAlertItemInput): Promise; getItem(alertId: string, itemId: string): Promise; updateItem(alertId: string, itemId: string, data: UpdateINMAlertItemInput): Promise; listItems(alertId: string, options?: ListOptions): Promise>; protected applyScopeToItemFilter(filter?: INMAlertItemFilter): AlertItemFilter | undefined; addItems(alertId: string, items: CreateINMAlertItemInput[]): Promise<{ added: number; items: MexINMAlertItem[]; }>; protected createItemsResource(): AlertItemsResource | undefined; } | undefined; alertType?: "100" | "9999" | "3101" | "3102" | "3103" | "3104" | "3105" | "3106" | "3107" | "3108" | "3109" | "3110" | "3111" | "3112" | "3113" | "3114" | "3115" | "3116" | "3117" | "3118" | "3119" | "3120" | { eq?: "100" | "9999" | "3101" | "3102" | "3103" | "3104" | "3105" | "3106" | "3107" | "3108" | "3109" | "3110" | "3111" | "3112" | "3113" | "3114" | "3115" | "3116" | "3117" | "3118" | "3119" | "3120" | undefined; in?: ("100" | "9999" | "3101" | "3102" | "3103" | "3104" | "3105" | "3106" | "3107" | "3108" | "3109" | "3110" | "3111" | "3112" | "3113" | "3114" | "3115" | "3116" | "3117" | "3118" | "3119" | "3120")[] | undefined; nin?: ("100" | "9999" | "3101" | "3102" | "3103" | "3104" | "3105" | "3106" | "3107" | "3108" | "3109" | "3110" | "3111" | "3112" | "3113" | "3114" | "3115" | "3116" | "3117" | "3118" | "3119" | "3120")[] | undefined; } | undefined; alertDescription?: string | { eq?: string | undefined; contains?: string | undefined; startsWith?: string | undefined; endsWith?: string | undefined; in?: string[] | undefined; nin?: string[] | undefined; } | undefined; }>; /** * Validates an INM alert. * * @param alertId - The alert ID to validate * @param defaults - INM alert defaults including rfc, alertType, etc. */ validateReport(alertId: string, defaults?: InmAlertDefaultsInput): Promise; /** * Generates XML for an INM alert. * * @param alertId - The alert ID to generate XML for * @param defaults - INM alert defaults including rfc, alertType, etc. */ generateReport(alertId: string, defaults?: InmAlertDefaultsInput): Promise; protected transformToNested(data: CreateINMAlertInput): CreateAlertInput; protected transformUpdateToNested(data: UpdateINMAlertInput): UpdateAlertInput; protected instantiate(data: AlertData): MexINMAlert; /** Materializes a raw payload into a {@link MexINMAlert} (return type narrowed via the `instantiate` override). */ materialize(data: AlertData): MexINMAlert; protected instantiateItem(data: AlertItemData): MexINMAlertItem; protected instantiateTransactionItem(data: AlertTransactionItemData): MexINMAlertTransactionItem; protected instantiateClientItem(data: AlertClientItemData): MexINMAlertClientItem; protected transformItemToNested(data: CreateINMAlertItemInput): CreateAlertItemInput; protected transformItemUpdateToNested(data: UpdateINMAlertItemInput): UpdateAlertItemInput; protected applyScopeToSort(sort?: INMAlertSort): AlertSort | undefined; protected transformInmDefaultsToNested(alertId: string, defaults?: InmAlertDefaultsInput): { alertId: string; reportType: ReportType; defaults?: unknown; }; }