@firela/api-types 0.0.0-canary.9256c41b → 0.0.0-canary.92e8f8e1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -78,6 +78,10 @@ type AccountResponseDto = {
78
78
  * Account type (root segment)
79
79
  */
80
80
  type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
81
+ /**
82
+ * Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
83
+ */
84
+ assetSubClass?: 'DEPOSIT' | 'CASH' | 'MONEY_MARKET_FUND' | 'STOCK' | 'ETF' | 'MUTUAL_FUND' | 'EQUITY_COMPENSATION' | 'GOVERNMENT_BOND' | 'CORPORATE_BOND' | 'BOND_FUND' | 'PRIMARY_RESIDENCE' | 'INVESTMENT_PROPERTY' | 'REIT' | 'GOLD' | 'SILVER' | 'PRECIOUS_METAL' | 'PRECIOUS_METAL_FUND' | 'COMMODITY' | 'COMMODITY_FUND' | 'CRYPTOCURRENCY' | 'RETIREMENT_ACCOUNT' | 'HEALTH_ACCOUNT' | 'EDUCATION_ACCOUNT' | 'INSURANCE' | 'PRIVATE_EQUITY' | 'HEDGE_FUND' | 'COLLECTIBLES' | 'MORTGAGE' | 'STUDENT_LOAN' | 'CREDIT_CARD' | 'PERSONAL_LOAN' | 'ACCOUNTS_PAYABLE' | 'TAX_PAYABLE' | 'OTHER' | null;
81
85
  /**
82
86
  * Account status
83
87
  */
@@ -145,6 +149,10 @@ type AccountResponseDto = {
145
149
  * Account type (root segment)
146
150
  */
147
151
  type type = 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
152
+ /**
153
+ * Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
154
+ */
155
+ type assetSubClass = 'DEPOSIT' | 'CASH' | 'MONEY_MARKET_FUND' | 'STOCK' | 'ETF' | 'MUTUAL_FUND' | 'EQUITY_COMPENSATION' | 'GOVERNMENT_BOND' | 'CORPORATE_BOND' | 'BOND_FUND' | 'PRIMARY_RESIDENCE' | 'INVESTMENT_PROPERTY' | 'REIT' | 'GOLD' | 'SILVER' | 'PRECIOUS_METAL' | 'PRECIOUS_METAL_FUND' | 'COMMODITY' | 'COMMODITY_FUND' | 'CRYPTOCURRENCY' | 'RETIREMENT_ACCOUNT' | 'HEALTH_ACCOUNT' | 'EDUCATION_ACCOUNT' | 'INSURANCE' | 'PRIVATE_EQUITY' | 'HEDGE_FUND' | 'COLLECTIBLES' | 'MORTGAGE' | 'STUDENT_LOAN' | 'CREDIT_CARD' | 'PERSONAL_LOAN' | 'ACCOUNTS_PAYABLE' | 'TAX_PAYABLE' | 'OTHER';
148
156
  /**
149
157
  * Account status
150
158
  */
@@ -246,7 +254,27 @@ type AccountStandardResponseDto = {
246
254
  * Icon identifier for UI display
247
255
  */
248
256
  icon: string;
257
+ /**
258
+ * Onboarding product category (coarse grouping derived from assetSubClass)
259
+ */
260
+ productCategory: 'cash' | 'investment' | 'credit_card' | 'loan' | 'payable_tax' | 'other';
261
+ /**
262
+ * Asset class (LIQUIDITY/EQUITY/.../LIABILITY), derived at read time from classification rules
263
+ */
264
+ assetClass?: 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
265
+ /**
266
+ * Asset sub-class (product type, derived at read time from classification rules)
267
+ */
268
+ assetSubClass?: string;
249
269
  };
270
+ /**
271
+ * Onboarding product category (coarse grouping derived from assetSubClass)
272
+ */
273
+ type productCategory = 'cash' | 'investment' | 'credit_card' | 'loan' | 'payable_tax' | 'other';
274
+ /**
275
+ * Asset class (LIQUIDITY/EQUITY/.../LIABILITY), derived at read time from classification rules
276
+ */
277
+ type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
250
278
  type AccountStandardListResponseDto = {
251
279
  /**
252
280
  * Array of account templates
@@ -2375,363 +2403,211 @@ type ForecastResponseDto = {
2375
2403
  */
2376
2404
  periodEnd: string;
2377
2405
  };
2378
- type CreateTransactionRuleDto = {
2379
- name: string;
2380
- description?: string;
2381
- narrationKeywords?: Array<unknown[]>;
2382
- payeeKeywords?: Array<unknown[]>;
2383
- categoryKeywords?: Array<unknown[]>;
2406
+ type CurrencyBalanceDto = {
2384
2407
  /**
2385
- * Payment method keywords (e.g., HuaBei, YuEBao)
2408
+ * ISO 4217 currency code
2386
2409
  */
2387
- methodKeywords?: Array<unknown[]>;
2410
+ currency: string;
2388
2411
  /**
2389
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2412
+ * Balance amount
2390
2413
  */
2391
- categoryAccount?: string;
2392
- matchLogic: 'OR' | 'AND';
2414
+ balance: string;
2415
+ };
2416
+ type TimeSeriesPointDto = {
2393
2417
  /**
2394
- * Minimum transaction amount (inclusive)
2418
+ * Date in YYYY-MM-DD format
2395
2419
  */
2396
- amountMin?: number;
2420
+ date: string;
2397
2421
  /**
2398
- * Maximum transaction amount (inclusive)
2422
+ * Value at this date (in base currency)
2399
2423
  */
2400
- amountMax?: number;
2401
- priority: number;
2402
- additionalTags?: Array<unknown[]>;
2403
- additionalMetadata?: {
2424
+ value: string;
2425
+ /**
2426
+ * Change from previous point
2427
+ */
2428
+ change?: {
2404
2429
  [key: string]: unknown;
2405
2430
  };
2406
2431
  /**
2407
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2432
+ * Total assets at this date (in base currency)
2408
2433
  */
2409
- upsertByPayee?: boolean;
2410
- };
2411
- type matchLogic = 'OR' | 'AND';
2412
- type AmountRangeDto = {
2434
+ assets?: string;
2413
2435
  /**
2414
- * Minimum amount
2436
+ * Total liabilities at this date (in base currency)
2415
2437
  */
2416
- min?: number;
2438
+ liabilities?: string;
2417
2439
  /**
2418
- * Maximum amount
2440
+ * Multi-currency breakdown for this point
2419
2441
  */
2420
- max?: number;
2442
+ byCurrency?: Array<CurrencyBalanceDto>;
2421
2443
  };
2422
- type TransactionRuleResponseDto = {
2444
+ type TrendSummaryDto = {
2423
2445
  /**
2424
- * Rule ID
2446
+ * Value at start of period
2425
2447
  */
2426
- id: string;
2448
+ startValue: string;
2427
2449
  /**
2428
- * Rule name
2450
+ * Value at end of period
2429
2451
  */
2430
- name: string;
2452
+ endValue: string;
2431
2453
  /**
2432
- * Rule description
2454
+ * Total change over period
2433
2455
  */
2434
- description?: string;
2456
+ totalChange: string;
2435
2457
  /**
2436
- * Keywords to match in transaction narration
2458
+ * Total change percentage
2437
2459
  */
2438
- narrationKeywords: Array<string>;
2460
+ totalChangePercentage: string;
2461
+ };
2462
+ type MultiCurrencyPointDto = {
2439
2463
  /**
2440
- * Keywords to match in payee name
2464
+ * Date in YYYY-MM-DD format
2441
2465
  */
2442
- payeeKeywords: Array<string>;
2466
+ date: string;
2443
2467
  /**
2444
- * Keywords to match in category
2468
+ * Balances by currency
2445
2469
  */
2446
- categoryKeywords: Array<string>;
2470
+ byCurrency: Array<CurrencyBalanceDto>;
2471
+ };
2472
+ type PortfolioTrendsResponseDto = {
2447
2473
  /**
2448
- * Keywords to match in payment method
2474
+ * Time series data points
2449
2475
  */
2450
- methodKeywords: Array<string>;
2476
+ series: Array<TimeSeriesPointDto>;
2451
2477
  /**
2452
- * Destination account for categorization
2478
+ * Period summary
2453
2479
  */
2454
- categoryAccount?: string;
2480
+ summary: TrendSummaryDto;
2455
2481
  /**
2456
- * Keyword matching logic
2482
+ * Period requested
2457
2483
  */
2458
- matchLogic: 'OR' | 'AND';
2484
+ period: string;
2459
2485
  /**
2460
- * Amount range for matching
2486
+ * Data granularity
2461
2487
  */
2462
- amountRange?: AmountRangeDto;
2488
+ granularity: string;
2463
2489
  /**
2464
- * Rule priority (0-1000, higher = first match)
2490
+ * Base currency for converted values
2465
2491
  */
2466
- priority: number;
2492
+ currency: string;
2467
2493
  /**
2468
- * Whether the rule is enabled
2494
+ * Multi-currency time series (each point has currency breakdown)
2469
2495
  */
2470
- enabled: boolean;
2496
+ byCurrency?: Array<MultiCurrencyPointDto>;
2471
2497
  /**
2472
- * Learning source: NLP, REVIEW_CENTER, or null for manual
2498
+ * Exchange rate warnings
2473
2499
  */
2474
- learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
2500
+ warnings?: Array<ExchangeRateWarningDto>;
2501
+ };
2502
+ type CashFlowPointDto = {
2475
2503
  /**
2476
- * Whether auto-apply is enabled for this rule
2504
+ * Month key (YYYY-MM)
2477
2505
  */
2478
- autoApplyEnabled: boolean;
2506
+ month: string;
2479
2507
  /**
2480
- * Number of confirmations for NLP-learned rules
2508
+ * Income in base currency (absolute, converted)
2481
2509
  */
2482
- confirmationCount: number;
2510
+ income: string;
2483
2511
  /**
2484
- * Additional tags
2512
+ * Expense in base currency (absolute, converted)
2485
2513
  */
2486
- additionalTags: Array<string>;
2514
+ expense: string;
2487
2515
  /**
2488
- * Additional metadata
2516
+ * netSavings = income − expense (savings positive)
2489
2517
  */
2490
- additionalMetadata?: {
2491
- [key: string]: string;
2492
- };
2518
+ netSavings: string;
2519
+ };
2520
+ type CashFlowTrendSummaryDto = {
2493
2521
  /**
2494
- * Created timestamp
2522
+ * Total income across the period
2495
2523
  */
2496
- createdAt: string;
2524
+ totalIncome: string;
2497
2525
  /**
2498
- * Updated timestamp
2526
+ * Total expense across the period
2499
2527
  */
2500
- updatedAt: string;
2501
- };
2502
- /**
2503
- * Learning source: NLP, REVIEW_CENTER, or null for manual
2504
- */
2505
- type learningSource = 'NLP' | 'REVIEW_CENTER';
2506
- type TransactionRuleListResponseDto = {
2507
- data: Array<TransactionRuleResponseDto>;
2528
+ totalExpense: string;
2508
2529
  /**
2509
- * Total count of rules
2530
+ * income expense across the period
2510
2531
  */
2511
- total: number;
2532
+ totalNetSavings: string;
2512
2533
  /**
2513
- * Results per page
2534
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
2514
2535
  */
2515
- limit: number;
2536
+ averageMonthlyNetSavings: string;
2537
+ };
2538
+ type CashFlowTrendsResponseDto = {
2516
2539
  /**
2517
- * Pagination offset
2540
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
2518
2541
  */
2519
- offset: number;
2520
- };
2521
- type ValidateRuleDto = {
2522
- name: string;
2523
- description?: string;
2524
- narrationKeywords?: Array<unknown[]>;
2525
- payeeKeywords?: Array<unknown[]>;
2526
- categoryKeywords?: Array<unknown[]>;
2542
+ series: Array<CashFlowPointDto>;
2527
2543
  /**
2528
- * Payment method keywords (e.g., HuaBei, YuEBao)
2544
+ * Period totals
2529
2545
  */
2530
- methodKeywords?: Array<unknown[]>;
2546
+ summary: CashFlowTrendSummaryDto;
2531
2547
  /**
2532
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2548
+ * Period requested
2533
2549
  */
2534
- categoryAccount?: string;
2535
- matchLogic: 'OR' | 'AND';
2550
+ period: string;
2536
2551
  /**
2537
- * Minimum transaction amount (inclusive)
2552
+ * Data granularity (v1 returns month buckets)
2538
2553
  */
2539
- amountMin?: number;
2554
+ granularity: string;
2540
2555
  /**
2541
- * Maximum transaction amount (inclusive)
2556
+ * Base currency for converted values
2542
2557
  */
2543
- amountMax?: number;
2544
- priority: number;
2545
- additionalTags?: Array<unknown[]>;
2546
- additionalMetadata?: {
2547
- [key: string]: unknown;
2548
- };
2558
+ currency: string;
2549
2559
  /**
2550
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2560
+ * Exchange rate warnings (e.g. missing rate for a currency)
2551
2561
  */
2552
- upsertByPayee?: boolean;
2562
+ warnings?: Array<ExchangeRateWarningDto>;
2553
2563
  };
2554
- type ValidateRuleResponseDto = {
2564
+ type GenerateSnapshotBody = unknown;
2565
+ type GenerateSnapshotResponse = unknown;
2566
+ type BackfillSnapshotsBody = unknown;
2567
+ type BackfillSnapshotsResponse = unknown;
2568
+ type DeleteOwnUserDto = {
2555
2569
  /**
2556
- * Whether the rule configuration is valid
2570
+ * Access token for user verification
2557
2571
  */
2558
- valid: boolean;
2572
+ accessToken: string;
2573
+ };
2574
+ type UserSettingsResponseDto = {
2559
2575
  /**
2560
- * List of validation errors (empty if valid)
2576
+ * Base currency (ISO 4217) for net-worth/report aggregation. Independent of region (ADR-0006).
2561
2577
  */
2562
- errors: Array<unknown[]>;
2578
+ baseCurrency: string | null;
2579
+ };
2580
+ type UserResponseDto = {
2563
2581
  /**
2564
- * List of validation warnings (non-blocking issues)
2582
+ * User ID
2565
2583
  */
2566
- warnings: Array<unknown[]>;
2567
- };
2568
- type BulkCreateRulesDto = {
2584
+ id: string;
2569
2585
  /**
2570
- * Array of rules to import
2586
+ * Assigned user role
2571
2587
  */
2572
- rules: Array<unknown[]>;
2588
+ role: string;
2573
2589
  /**
2574
- * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2590
+ * Permission strings
2575
2591
  */
2576
- conflictStrategy: 'replace' | 'skip';
2577
- };
2578
- /**
2579
- * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2580
- */
2581
- type conflictStrategy = 'replace' | 'skip';
2582
- type BulkCreateRulesResponseDto = {
2592
+ permissions: Array<string>;
2583
2593
  /**
2584
- * Number of successfully created rules
2594
+ * User settings
2585
2595
  */
2586
- successCount: number;
2596
+ settings: UserSettingsResponseDto;
2597
+ };
2598
+ type SignupDto = {
2587
2599
  /**
2588
- * Number of failed rules
2600
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2589
2601
  */
2590
- failureCount: number;
2602
+ turnstileToken?: string;
2603
+ };
2604
+ type SignupResponseDto = {
2591
2605
  /**
2592
- * Error details for failed rules
2606
+ * JWT auth token
2593
2607
  */
2594
- errors: Array<{
2595
- index?: number;
2596
- message?: string;
2597
- }>;
2608
+ authToken: string;
2598
2609
  /**
2599
- * IDs of successfully created rules
2600
- */
2601
- createdRuleIds: Array<string>;
2602
- };
2603
- type ExportRulesResponseDto = {
2604
- /**
2605
- * Export timestamp
2606
- */
2607
- exportedAt: string;
2608
- /**
2609
- * User ID
2610
- */
2611
- userId: string;
2612
- /**
2613
- * Number of exported rules
2614
- */
2615
- ruleCount: number;
2616
- /**
2617
- * Exported rules
2618
- */
2619
- rules: unknown[];
2620
- };
2621
- type RuleStatisticsResponseDto = {
2622
- /**
2623
- * Statistics time period
2624
- */
2625
- period: '7d' | '30d' | '90d';
2626
- /**
2627
- * Total number of rules
2628
- */
2629
- totalRules: number;
2630
- /**
2631
- * Number of rules with at least one match
2632
- */
2633
- rulesWithMatches: number;
2634
- /**
2635
- * Total number of matches across all rules
2636
- */
2637
- totalMatches: number;
2638
- /**
2639
- * Average confidence score across all matches
2640
- */
2641
- averageConfidence: number;
2642
- /**
2643
- * Per-rule statistics
2644
- */
2645
- ruleStats: Array<{
2646
- ruleId?: string;
2647
- ruleName?: string;
2648
- matchCount?: number;
2649
- averageConfidence?: number;
2650
- }>;
2651
- };
2652
- /**
2653
- * Statistics time period
2654
- */
2655
- type period = '7d' | '30d' | '90d';
2656
- type UpdateTransactionRuleDto = {
2657
- name?: string;
2658
- description?: string;
2659
- narrationKeywords?: Array<unknown[]>;
2660
- payeeKeywords?: Array<unknown[]>;
2661
- categoryKeywords?: Array<unknown[]>;
2662
- /**
2663
- * Payment method keywords (e.g., HuaBei, YuEBao)
2664
- */
2665
- methodKeywords?: Array<unknown[]>;
2666
- /**
2667
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2668
- */
2669
- categoryAccount?: string;
2670
- matchLogic?: 'OR' | 'AND';
2671
- /**
2672
- * Minimum transaction amount (inclusive)
2673
- */
2674
- amountMin?: number;
2675
- /**
2676
- * Maximum transaction amount (inclusive)
2677
- */
2678
- amountMax?: number;
2679
- priority?: number;
2680
- /**
2681
- * Enable or disable the rule
2682
- */
2683
- enabled?: boolean;
2684
- additionalTags?: Array<unknown[]>;
2685
- additionalMetadata?: {
2686
- [key: string]: unknown;
2687
- };
2688
- };
2689
- type TestRuleDto = {
2690
- narration: string;
2691
- payee?: string;
2692
- categoryAccount?: string;
2693
- amount?: number;
2694
- currency?: string;
2695
- };
2696
- type TestRuleResponseDto = {
2697
- /**
2698
- * Rule ID that was tested
2699
- */
2700
- ruleId: string;
2701
- /**
2702
- * Whether the rule matched the test data
2703
- */
2704
- matches: boolean;
2705
- /**
2706
- * Match confidence score (0-1)
2707
- */
2708
- confidence: number;
2709
- /**
2710
- * Details of which fields matched
2711
- */
2712
- matchDetails: {
2713
- [key: string]: unknown;
2714
- };
2715
- };
2716
- type DeleteOwnUserDto = {
2717
- /**
2718
- * Access token for user verification
2719
- */
2720
- accessToken: string;
2721
- };
2722
- type SignupDto = {
2723
- /**
2724
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2725
- */
2726
- turnstileToken?: string;
2727
- };
2728
- type SignupResponseDto = {
2729
- /**
2730
- * JWT auth token
2731
- */
2732
- authToken: string;
2733
- /**
2734
- * Auto-generated access token
2610
+ * Auto-generated access token
2735
2611
  */
2736
2612
  accessToken: string;
2737
2613
  /**
@@ -2843,115 +2719,489 @@ type UpdatePropertyDto = {
2843
2719
  */
2844
2720
  value: string;
2845
2721
  };
2846
- type CreateBeanEventDto = {
2722
+ type CreateTransactionRuleDto = {
2723
+ name: string;
2724
+ description?: string;
2725
+ narrationKeywords?: Array<unknown[]>;
2726
+ payeeKeywords?: Array<unknown[]>;
2727
+ categoryKeywords?: Array<unknown[]>;
2847
2728
  /**
2848
- * Life event date (ISO 8601)
2729
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2849
2730
  */
2850
- date: string;
2731
+ methodKeywords?: Array<unknown[]>;
2851
2732
  /**
2852
- * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
2733
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2853
2734
  */
2854
- type: string;
2735
+ categoryAccount?: string;
2736
+ matchLogic: 'OR' | 'AND';
2855
2737
  /**
2856
- * Life event description. Empty string is a VALID value (distinct from absence).
2738
+ * Minimum transaction amount (inclusive)
2857
2739
  */
2858
- description: string;
2740
+ amountMin?: number;
2859
2741
  /**
2860
- * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
2742
+ * Maximum transaction amount (inclusive)
2861
2743
  */
2862
- meta?: {
2744
+ amountMax?: number;
2745
+ priority: number;
2746
+ additionalTags?: Array<unknown[]>;
2747
+ additionalMetadata?: {
2863
2748
  [key: string]: unknown;
2864
2749
  };
2865
- };
2866
- type EventResponseDto = {
2867
2750
  /**
2868
- * Unique identifier
2751
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2869
2752
  */
2870
- id: string;
2753
+ upsertByPayee?: boolean;
2754
+ };
2755
+ type matchLogic = 'OR' | 'AND';
2756
+ type AmountRangeDto = {
2871
2757
  /**
2872
- * User ID (owner of the life event)
2758
+ * Minimum amount
2873
2759
  */
2874
- userId: string;
2760
+ min?: number;
2875
2761
  /**
2876
- * Life event date (ISO 8601 format)
2762
+ * Maximum amount
2877
2763
  */
2878
- date: string;
2764
+ max?: number;
2765
+ };
2766
+ type TransactionRuleResponseDto = {
2879
2767
  /**
2880
- * Life event type (user-defined, e.g., "employer", "location")
2768
+ * Rule ID
2881
2769
  */
2882
- type: string;
2770
+ id: string;
2883
2771
  /**
2884
- * Life event description. May be an empty string (a valid value distinct from absence).
2772
+ * Rule name
2885
2773
  */
2886
- description: string;
2774
+ name: string;
2887
2775
  /**
2888
- * Product-side metadata (free-form JSON)
2776
+ * Rule description
2889
2777
  */
2890
- meta: {
2891
- [key: string]: unknown;
2892
- };
2778
+ description?: string;
2893
2779
  /**
2894
- * Creation timestamp
2780
+ * Keywords to match in transaction narration
2895
2781
  */
2896
- createdAt: string;
2782
+ narrationKeywords: Array<string>;
2897
2783
  /**
2898
- * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
2784
+ * Keywords to match in payee name
2899
2785
  */
2900
- updatedAt: string;
2901
- };
2902
- type EventListResponseDto = {
2786
+ payeeKeywords: Array<string>;
2903
2787
  /**
2904
- * List of life events
2788
+ * Keywords to match in category
2905
2789
  */
2906
- items: Array<EventResponseDto>;
2790
+ categoryKeywords: Array<string>;
2907
2791
  /**
2908
- * Total number of life events matching the query
2792
+ * Keywords to match in payment method
2909
2793
  */
2910
- total: number;
2911
- };
2912
- type UpdateBeanEventDto = {
2794
+ methodKeywords: Array<string>;
2913
2795
  /**
2914
- * Life event date (ISO 8601)
2796
+ * Destination account for categorization
2915
2797
  */
2916
- date?: string;
2798
+ categoryAccount?: string;
2917
2799
  /**
2918
- * Life event type (user-defined)
2800
+ * Keyword matching logic
2919
2801
  */
2920
- type?: string;
2802
+ matchLogic: 'OR' | 'AND';
2921
2803
  /**
2922
- * Life event description. Empty string is a VALID value (distinct from absence).
2804
+ * Amount range for matching
2923
2805
  */
2924
- description?: string;
2806
+ amountRange?: AmountRangeDto;
2925
2807
  /**
2926
- * Product-side metadata (free-form JSON)
2808
+ * Rule priority (0-1000, higher = first match)
2927
2809
  */
2928
- meta?: {
2929
- [key: string]: unknown;
2930
- };
2931
- };
2932
- type OnboardingAccountDto = {
2810
+ priority: number;
2933
2811
  /**
2934
- * Account path (Assets/Liabilities only; format validated by the account service)
2812
+ * Whether the rule is enabled
2935
2813
  */
2936
- path: string;
2814
+ enabled: boolean;
2937
2815
  /**
2938
- * ISO 4217 currency code (3 letters)
2816
+ * Learning source: NLP, REVIEW_CENTER, or null for manual
2939
2817
  */
2940
- currency: string;
2818
+ learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
2941
2819
  /**
2942
- * Opening balance as a non-negative Decimal string (e.g. "1000.00")
2820
+ * Whether auto-apply is enabled for this rule
2943
2821
  */
2944
- openingBalance?: string;
2822
+ autoApplyEnabled: boolean;
2945
2823
  /**
2946
- * Platform ID to bind the account to (references Platform.id); omit for unbound
2824
+ * Number of confirmations for NLP-learned rules
2947
2825
  */
2948
- platformId?: string;
2949
- };
2950
- type OnboardingDto = {
2826
+ confirmationCount: number;
2951
2827
  /**
2952
- * Asset/Liability accounts to register with opening balances
2828
+ * Additional tags
2953
2829
  */
2954
- accounts?: Array<OnboardingAccountDto>;
2830
+ additionalTags: Array<string>;
2831
+ /**
2832
+ * Additional metadata
2833
+ */
2834
+ additionalMetadata?: {
2835
+ [key: string]: string;
2836
+ };
2837
+ /**
2838
+ * Created timestamp
2839
+ */
2840
+ createdAt: string;
2841
+ /**
2842
+ * Updated timestamp
2843
+ */
2844
+ updatedAt: string;
2845
+ };
2846
+ /**
2847
+ * Learning source: NLP, REVIEW_CENTER, or null for manual
2848
+ */
2849
+ type learningSource = 'NLP' | 'REVIEW_CENTER';
2850
+ type TransactionRuleListResponseDto = {
2851
+ data: Array<TransactionRuleResponseDto>;
2852
+ /**
2853
+ * Total count of rules
2854
+ */
2855
+ total: number;
2856
+ /**
2857
+ * Results per page
2858
+ */
2859
+ limit: number;
2860
+ /**
2861
+ * Pagination offset
2862
+ */
2863
+ offset: number;
2864
+ };
2865
+ type ValidateRuleDto = {
2866
+ name: string;
2867
+ description?: string;
2868
+ narrationKeywords?: Array<unknown[]>;
2869
+ payeeKeywords?: Array<unknown[]>;
2870
+ categoryKeywords?: Array<unknown[]>;
2871
+ /**
2872
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2873
+ */
2874
+ methodKeywords?: Array<unknown[]>;
2875
+ /**
2876
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2877
+ */
2878
+ categoryAccount?: string;
2879
+ matchLogic: 'OR' | 'AND';
2880
+ /**
2881
+ * Minimum transaction amount (inclusive)
2882
+ */
2883
+ amountMin?: number;
2884
+ /**
2885
+ * Maximum transaction amount (inclusive)
2886
+ */
2887
+ amountMax?: number;
2888
+ priority: number;
2889
+ additionalTags?: Array<unknown[]>;
2890
+ additionalMetadata?: {
2891
+ [key: string]: unknown;
2892
+ };
2893
+ /**
2894
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2895
+ */
2896
+ upsertByPayee?: boolean;
2897
+ };
2898
+ type ValidateRuleResponseDto = {
2899
+ /**
2900
+ * Whether the rule configuration is valid
2901
+ */
2902
+ valid: boolean;
2903
+ /**
2904
+ * List of validation errors (empty if valid)
2905
+ */
2906
+ errors: Array<unknown[]>;
2907
+ /**
2908
+ * List of validation warnings (non-blocking issues)
2909
+ */
2910
+ warnings: Array<unknown[]>;
2911
+ };
2912
+ type BulkCreateRulesDto = {
2913
+ /**
2914
+ * Array of rules to import
2915
+ */
2916
+ rules: Array<unknown[]>;
2917
+ /**
2918
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2919
+ */
2920
+ conflictStrategy: 'replace' | 'skip';
2921
+ };
2922
+ /**
2923
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2924
+ */
2925
+ type conflictStrategy = 'replace' | 'skip';
2926
+ type BulkCreateRulesResponseDto = {
2927
+ /**
2928
+ * Number of successfully created rules
2929
+ */
2930
+ successCount: number;
2931
+ /**
2932
+ * Number of failed rules
2933
+ */
2934
+ failureCount: number;
2935
+ /**
2936
+ * Error details for failed rules
2937
+ */
2938
+ errors: Array<{
2939
+ index?: number;
2940
+ message?: string;
2941
+ }>;
2942
+ /**
2943
+ * IDs of successfully created rules
2944
+ */
2945
+ createdRuleIds: Array<string>;
2946
+ };
2947
+ type ExportRulesResponseDto = {
2948
+ /**
2949
+ * Export timestamp
2950
+ */
2951
+ exportedAt: string;
2952
+ /**
2953
+ * User ID
2954
+ */
2955
+ userId: string;
2956
+ /**
2957
+ * Number of exported rules
2958
+ */
2959
+ ruleCount: number;
2960
+ /**
2961
+ * Exported rules
2962
+ */
2963
+ rules: unknown[];
2964
+ };
2965
+ type RuleStatisticsResponseDto = {
2966
+ /**
2967
+ * Statistics time period
2968
+ */
2969
+ period: '7d' | '30d' | '90d';
2970
+ /**
2971
+ * Total number of rules
2972
+ */
2973
+ totalRules: number;
2974
+ /**
2975
+ * Number of rules with at least one match
2976
+ */
2977
+ rulesWithMatches: number;
2978
+ /**
2979
+ * Total number of matches across all rules
2980
+ */
2981
+ totalMatches: number;
2982
+ /**
2983
+ * Average confidence score across all matches
2984
+ */
2985
+ averageConfidence: number;
2986
+ /**
2987
+ * Per-rule statistics
2988
+ */
2989
+ ruleStats: Array<{
2990
+ ruleId?: string;
2991
+ ruleName?: string;
2992
+ matchCount?: number;
2993
+ averageConfidence?: number;
2994
+ }>;
2995
+ };
2996
+ /**
2997
+ * Statistics time period
2998
+ */
2999
+ type period = '7d' | '30d' | '90d';
3000
+ type UpdateTransactionRuleDto = {
3001
+ name?: string;
3002
+ description?: string;
3003
+ narrationKeywords?: Array<unknown[]>;
3004
+ payeeKeywords?: Array<unknown[]>;
3005
+ categoryKeywords?: Array<unknown[]>;
3006
+ /**
3007
+ * Payment method keywords (e.g., HuaBei, YuEBao)
3008
+ */
3009
+ methodKeywords?: Array<unknown[]>;
3010
+ /**
3011
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
3012
+ */
3013
+ categoryAccount?: string;
3014
+ matchLogic?: 'OR' | 'AND';
3015
+ /**
3016
+ * Minimum transaction amount (inclusive)
3017
+ */
3018
+ amountMin?: number;
3019
+ /**
3020
+ * Maximum transaction amount (inclusive)
3021
+ */
3022
+ amountMax?: number;
3023
+ priority?: number;
3024
+ /**
3025
+ * Enable or disable the rule
3026
+ */
3027
+ enabled?: boolean;
3028
+ additionalTags?: Array<unknown[]>;
3029
+ additionalMetadata?: {
3030
+ [key: string]: unknown;
3031
+ };
3032
+ };
3033
+ type TestRuleDto = {
3034
+ narration: string;
3035
+ payee?: string;
3036
+ categoryAccount?: string;
3037
+ amount?: number;
3038
+ currency?: string;
3039
+ };
3040
+ type TestRuleResponseDto = {
3041
+ /**
3042
+ * Rule ID that was tested
3043
+ */
3044
+ ruleId: string;
3045
+ /**
3046
+ * Whether the rule matched the test data
3047
+ */
3048
+ matches: boolean;
3049
+ /**
3050
+ * Match confidence score (0-1)
3051
+ */
3052
+ confidence: number;
3053
+ /**
3054
+ * Details of which fields matched
3055
+ */
3056
+ matchDetails: {
3057
+ [key: string]: unknown;
3058
+ };
3059
+ };
3060
+ type CategoryCatalogEntryDto = {
3061
+ /**
3062
+ * Category slug (single source-of-truth)
3063
+ */
3064
+ slug: string;
3065
+ /**
3066
+ * Display scenario group (maps to frontend picker _scenario)
3067
+ */
3068
+ scenario: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3069
+ /**
3070
+ * Lucide icon name
3071
+ */
3072
+ icon: string;
3073
+ /**
3074
+ * Applicable regions ('*' = all, 'cn' = CN-only)
3075
+ */
3076
+ regions: Array<string>;
3077
+ };
3078
+ /**
3079
+ * Display scenario group (maps to frontend picker _scenario)
3080
+ */
3081
+ type scenario = 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
3082
+ type CategoryCatalogListResponseDto = {
3083
+ /**
3084
+ * Category entries (region-scoped, query-filtered)
3085
+ */
3086
+ items: Array<CategoryCatalogEntryDto>;
3087
+ /**
3088
+ * Total category entries for the region (before query filtering)
3089
+ */
3090
+ total: number;
3091
+ /**
3092
+ * Region code
3093
+ */
3094
+ region: string;
3095
+ };
3096
+ type CreateBeanEventDto = {
3097
+ /**
3098
+ * Life event date (ISO 8601)
3099
+ */
3100
+ date: string;
3101
+ /**
3102
+ * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
3103
+ */
3104
+ type: string;
3105
+ /**
3106
+ * Life event description. Empty string is a VALID value (distinct from absence).
3107
+ */
3108
+ description: string;
3109
+ /**
3110
+ * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
3111
+ */
3112
+ meta?: {
3113
+ [key: string]: unknown;
3114
+ };
3115
+ };
3116
+ type EventResponseDto = {
3117
+ /**
3118
+ * Unique identifier
3119
+ */
3120
+ id: string;
3121
+ /**
3122
+ * User ID (owner of the life event)
3123
+ */
3124
+ userId: string;
3125
+ /**
3126
+ * Life event date (ISO 8601 format)
3127
+ */
3128
+ date: string;
3129
+ /**
3130
+ * Life event type (user-defined, e.g., "employer", "location")
3131
+ */
3132
+ type: string;
3133
+ /**
3134
+ * Life event description. May be an empty string (a valid value distinct from absence).
3135
+ */
3136
+ description: string;
3137
+ /**
3138
+ * Product-side metadata (free-form JSON)
3139
+ */
3140
+ meta: {
3141
+ [key: string]: unknown;
3142
+ };
3143
+ /**
3144
+ * Creation timestamp
3145
+ */
3146
+ createdAt: string;
3147
+ /**
3148
+ * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
3149
+ */
3150
+ updatedAt: string;
3151
+ };
3152
+ type EventListResponseDto = {
3153
+ /**
3154
+ * List of life events
3155
+ */
3156
+ items: Array<EventResponseDto>;
3157
+ /**
3158
+ * Total number of life events matching the query
3159
+ */
3160
+ total: number;
3161
+ };
3162
+ type UpdateBeanEventDto = {
3163
+ /**
3164
+ * Life event date (ISO 8601)
3165
+ */
3166
+ date?: string;
3167
+ /**
3168
+ * Life event type (user-defined)
3169
+ */
3170
+ type?: string;
3171
+ /**
3172
+ * Life event description. Empty string is a VALID value (distinct from absence).
3173
+ */
3174
+ description?: string;
3175
+ /**
3176
+ * Product-side metadata (free-form JSON)
3177
+ */
3178
+ meta?: {
3179
+ [key: string]: unknown;
3180
+ };
3181
+ };
3182
+ type OnboardingAccountDto = {
3183
+ /**
3184
+ * Account path (Assets/Liabilities only; format validated by the account service)
3185
+ */
3186
+ path: string;
3187
+ /**
3188
+ * ISO 4217 currency code (3 letters)
3189
+ */
3190
+ currency: string;
3191
+ /**
3192
+ * Opening balance as a non-negative Decimal string (e.g. "1000.00")
3193
+ */
3194
+ openingBalance?: string;
3195
+ /**
3196
+ * Platform ID to bind the account to (references Platform.id); omit for unbound
3197
+ */
3198
+ platformId?: string;
3199
+ };
3200
+ type OnboardingDto = {
3201
+ /**
3202
+ * Asset/Liability accounts to register with opening balances
3203
+ */
3204
+ accounts?: Array<OnboardingAccountDto>;
2955
3205
  /**
2956
3206
  * Skip asset registration; only bootstrap the core account set
2957
3207
  */
@@ -3327,13 +3577,13 @@ type ProviderSyncConfigDto = {
3327
3577
  */
3328
3578
  defaultCurrency: string;
3329
3579
  /**
3330
- * Default expense account for the second posting
3580
+ * Default expense account for the second posting. Omit when no real default exists; the pipeline routes to Review via the Uncategorized sentinel (#618).
3331
3581
  */
3332
- defaultExpenseAccount: string;
3582
+ defaultExpenseAccount?: string;
3333
3583
  /**
3334
- * Default income account for the second posting
3584
+ * Default income account for the second posting. Omit when no real default exists; the pipeline routes to Review via the Uncategorized sentinel (#618).
3335
3585
  */
3336
- defaultIncomeAccount: string;
3586
+ defaultIncomeAccount?: string;
3337
3587
  /**
3338
3588
  * Filter pending transactions
3339
3589
  */
@@ -3430,11 +3680,85 @@ type ExternalAccountLinkListResponseDto = {
3430
3680
  };
3431
3681
  type ParserTelemetryReportDto = unknown;
3432
3682
  type UncoveredFormatMissDto = unknown;
3683
+ type ClientParsedDataDto = {
3684
+ /**
3685
+ * Transaction amount
3686
+ */
3687
+ amount?: number;
3688
+ /**
3689
+ * Currency code
3690
+ */
3691
+ currency?: string;
3692
+ /**
3693
+ * Transaction date (ISO 8601)
3694
+ */
3695
+ date?: string;
3696
+ /**
3697
+ * Payee/merchant name
3698
+ */
3699
+ payee?: string;
3700
+ /**
3701
+ * Transaction narration
3702
+ */
3703
+ narration?: string;
3704
+ /**
3705
+ * Category slug
3706
+ */
3707
+ category?: string;
3708
+ /**
3709
+ * Income type
3710
+ */
3711
+ incomeType?: string;
3712
+ /**
3713
+ * Income source
3714
+ */
3715
+ incomeSource?: string;
3716
+ /**
3717
+ * Security symbol code (e.g., 600519, AAPL)
3718
+ */
3719
+ symbol?: string;
3720
+ /**
3721
+ * Quantity of shares/units
3722
+ */
3723
+ quantity?: number;
3724
+ /**
3725
+ * Unit price per share/unit
3726
+ */
3727
+ price?: number;
3728
+ /**
3729
+ * Investment action
3730
+ */
3731
+ investmentAction?: 'buy' | 'sell';
3732
+ /**
3733
+ * Payment source: asset (default) or liability (credit card)
3734
+ */
3735
+ paymentSource?: 'asset' | 'liability';
3736
+ /**
3737
+ * Liability account hint (CreditCard/Huabei/Baitiao)
3738
+ */
3739
+ liabilityHint?: string;
3740
+ /**
3741
+ * Display-only warning from the prior response; accepted but ignored.
3742
+ */
3743
+ warning?: string;
3744
+ };
3745
+ /**
3746
+ * Investment action
3747
+ */
3748
+ type investmentAction = 'buy' | 'sell';
3749
+ /**
3750
+ * Payment source: asset (default) or liability (credit card)
3751
+ */
3752
+ type paymentSource = 'asset' | 'liability';
3433
3753
  type ProcessNlpDto = {
3434
3754
  /**
3435
- * Natural language text describing a transaction (Chinese)
3755
+ * Natural language text describing a transaction. Optional when `confirm` is true (structured confirm); otherwise required.
3756
+ */
3757
+ message?: string;
3758
+ /**
3759
+ * Structured confirm signal — bypasses NL confirm-word matching when true. Send parsedData field edits alongside. The NL word-list path is the fallback.
3436
3760
  */
3437
- message: string;
3761
+ confirm?: boolean;
3438
3762
  /**
3439
3763
  * Session ID for multi-turn conversation (auto-generated if not provided)
3440
3764
  */
@@ -3442,9 +3766,15 @@ type ProcessNlpDto = {
3442
3766
  /**
3443
3767
  * Parsed data from previous NLP response for session recovery. Send back the parsedData received in confirm_payee/confirm responses.
3444
3768
  */
3445
- parsedData?: {
3446
- [key: string]: unknown;
3447
- };
3769
+ parsedData?: ClientParsedDataDto;
3770
+ /**
3771
+ * confirm_rule echo-back: rule id selected from the prior confirm_rule response (matchedRule.id or alternatives[i].ruleId). Applied directly when the session is confirming_rule — no NL re-parse.
3772
+ */
3773
+ selectedRuleId?: string;
3774
+ /**
3775
+ * confirm_account echo-back: account path selected from the prior confirm_account response (suggestedAccount, similarAccounts[i], or a typed path). Applied directly when the session is confirming_account — no NL re-parse.
3776
+ */
3777
+ selectedAccount?: string;
3448
3778
  };
3449
3779
  type NlpTransactionInfoDto = {
3450
3780
  /**
@@ -3538,14 +3868,6 @@ type NlpParsedDataDto = {
3538
3868
  */
3539
3869
  warning?: string;
3540
3870
  };
3541
- /**
3542
- * Investment action
3543
- */
3544
- type investmentAction = 'buy' | 'sell';
3545
- /**
3546
- * Payment source: asset (default) or liability (credit card)
3547
- */
3548
- type paymentSource = 'asset' | 'liability';
3549
3871
  type NlpSourceTransactionDto = {
3550
3872
  /**
3551
3873
  * Transaction date (ISO format)
@@ -3678,9 +4000,9 @@ type NlpAccountConfirmationDataDto = {
3678
4000
  */
3679
4001
  invalidAccount: string;
3680
4002
  /**
3681
- * Suggested replacement account
4003
+ * Suggested replacement account (omitted when no clear candidate)
3682
4004
  */
3683
- suggestedAccount: string;
4005
+ suggestedAccount?: string;
3684
4006
  /**
3685
4007
  * Similar accounts for user selection
3686
4008
  */
@@ -3802,7 +4124,7 @@ type NlpSuggestedAccountDto = {
3802
4124
  */
3803
4125
  account: string;
3804
4126
  /**
3805
- * Confidence score for this suggestion (0-1)
4127
+ * Confidence score for this suggestion (0-1). Present = predicted (confirm/confirm_rule/confirm_account); omitted = actual persisted account (created). (#586)
3806
4128
  */
3807
4129
  confidence?: number;
3808
4130
  };
@@ -3818,21 +4140,21 @@ type NlpSuggestedAccountsDto = {
3818
4140
  };
3819
4141
  type NlpDefaultAccountsDto = {
3820
4142
  /**
3821
- * Default asset account
4143
+ * Default OPEN asset account (MRU when multiple), or null when none/ambiguous
3822
4144
  */
3823
- asset: string;
4145
+ asset: string | null;
3824
4146
  /**
3825
- * Default expense account
4147
+ * Default OPEN expense account (MRU when multiple), or null when none/ambiguous
3826
4148
  */
3827
- expense: string;
4149
+ expense: string | null;
3828
4150
  /**
3829
- * Default income account
4151
+ * Default OPEN income account (MRU when multiple), or null when none/ambiguous
3830
4152
  */
3831
- income: string;
4153
+ income: string | null;
3832
4154
  /**
3833
- * Default liability account
4155
+ * Default OPEN liability account (MRU when multiple), or null when none/ambiguous
3834
4156
  */
3835
- liability: string;
4157
+ liability: string | null;
3836
4158
  };
3837
4159
  type NlpResponseDto = {
3838
4160
  /**
@@ -3842,7 +4164,7 @@ type NlpResponseDto = {
3842
4164
  /**
3843
4165
  * Action taken or requested
3844
4166
  */
3845
- action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4167
+ action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3846
4168
  /**
3847
4169
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3848
4170
  */
@@ -3931,11 +4253,11 @@ type NlpResponseDto = {
3931
4253
  */
3932
4254
  recurringSuggestion?: RecurringSuggestionDto;
3933
4255
  /**
3934
- * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
4256
+ * Suggested accounts for this transaction (#586). confirm/confirm_rule/confirm_account: predicted (source/destination carry confidence); created: actual persisted accounts (confidence omitted). confirm_account destination is the suggested replacement, never the invalid account.
3935
4257
  */
3936
4258
  suggestedAccounts?: NlpSuggestedAccountsDto;
3937
4259
  /**
3938
- * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
4260
+ * Default fallback accounts for the user/region (#586). v1 returns universal constants; per-user personalization is planned.
3939
4261
  */
3940
4262
  defaultAccounts?: NlpDefaultAccountsDto;
3941
4263
  };
@@ -3946,7 +4268,7 @@ type status4 = 'success' | 'pending' | 'error';
3946
4268
  /**
3947
4269
  * Action taken or requested
3948
4270
  */
3949
- type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4271
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3950
4272
  /**
3951
4273
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3952
4274
  */
@@ -3985,13 +4307,21 @@ type PlatformListItemDto = {
3985
4307
  */
3986
4308
  canonical: string;
3987
4309
  /**
3988
- * Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
4310
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
3989
4311
  */
3990
4312
  suggestedSegment: string;
3991
4313
  /**
3992
4314
  * Logo URL
3993
4315
  */
3994
4316
  logoUrl: string | null;
4317
+ /**
4318
+ * ISO 3166-1 alpha-2 (UPPERCASE); null = global platform
4319
+ */
4320
+ countryCode: string | null;
4321
+ /**
4322
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank). null = no region-aware suggestion; fall back to type.
4323
+ */
4324
+ category: string | null;
3995
4325
  /**
3996
4326
  * Whether user has accounts using this platform
3997
4327
  */
@@ -4019,13 +4349,21 @@ type PlatformMatchResultDto = {
4019
4349
  */
4020
4350
  type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4021
4351
  /**
4022
- * Suggested path segment — canonical, already in ACCOUNT_RE format
4352
+ * Suggested path segment — canonical PascalCased per hyphen-part, hyphens preserved (e.g. "Apple-Pay")
4023
4353
  */
4024
4354
  suggestedSegment: string;
4025
4355
  /**
4026
4356
  * Logo URL
4027
4357
  */
4028
4358
  logoUrl: string | null;
4359
+ /**
4360
+ * ISO 3166-1 alpha-2 (UPPERCASE); null = global platform
4361
+ */
4362
+ countryCode: string | null;
4363
+ /**
4364
+ * Region-aware category (institution vocab, e.g. DigitalWallet/Bank). null = no region-aware suggestion; fall back to type.
4365
+ */
4366
+ category: string | null;
4029
4367
  /**
4030
4368
  * How this row matched: 'exact' > 'prefix' > 'substring'
4031
4369
  */
@@ -4371,10 +4709,6 @@ type AssetClassGroupDto = {
4371
4709
  */
4372
4710
  convertedBalance?: string;
4373
4711
  };
4374
- /**
4375
- * Asset class name
4376
- */
4377
- type assetClass = 'LIQUIDITY' | 'EQUITY' | 'FIXED_INCOME' | 'PRECIOUS_METALS' | 'COMMODITY' | 'INSURANCE' | 'ALTERNATIVE_INVESTMENT' | 'PERSONAL_ASSETS' | 'LIABILITY' | 'REAL_ESTATE' | 'INDEX';
4378
4712
  type AssetClassSummaryDto = {
4379
4713
  /**
4380
4714
  * Total number of accounts
@@ -4703,240 +5037,204 @@ type HoldingPnlRowDto = {
4703
5037
  [key: string]: unknown;
4704
5038
  } | null;
4705
5039
  /**
4706
- * Historical FX rate applied to cost basis
4707
- */
4708
- costFxRate?: FxRateDto | null;
4709
- /**
4710
- * FX rate applied to market value
4711
- */
4712
- marketFxRate?: FxRateDto | null;
4713
- /**
4714
- * Share of invested assets % (Decimal string); only for invested chartTokens
4715
- */
4716
- pctOfInvestedAssets?: {
4717
- [key: string]: unknown;
4718
- } | null;
4719
- /**
4720
- * Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
4721
- */
4722
- realizedPnl?: MonetaryDto | null;
4723
- };
4724
- /**
4725
- * Chart segment token (libs/common resolver)
4726
- */
4727
- type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
4728
- type HoldingPnlWarningDto = {
4729
- /**
4730
- * Warning type
4731
- */
4732
- type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4733
- symbol?: {
4734
- [key: string]: unknown;
4735
- } | null;
4736
- accountId?: {
4737
- [key: string]: unknown;
4738
- } | null;
4739
- currency?: {
4740
- [key: string]: unknown;
4741
- } | null;
4742
- };
4743
- /**
4744
- * Warning type
4745
- */
4746
- type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4747
- type HoldingPnlResponseDto = {
4748
- asOfDate: string;
4749
- baseCurrency: string;
4750
- /**
4751
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4752
- */
4753
- method: 'average' | 'FIFO';
4754
- rows: Array<HoldingPnlRowDto>;
4755
- warnings: Array<HoldingPnlWarningDto>;
4756
- };
4757
- /**
4758
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4759
- */
4760
- type method = 'average' | 'FIFO';
4761
- type CurrencyBalanceDto = {
4762
- /**
4763
- * ISO 4217 currency code
4764
- */
4765
- currency: string;
4766
- /**
4767
- * Balance amount
4768
- */
4769
- balance: string;
4770
- };
4771
- type TimeSeriesPointDto = {
4772
- /**
4773
- * Date in YYYY-MM-DD format
4774
- */
4775
- date: string;
4776
- /**
4777
- * Value at this date (in base currency)
4778
- */
4779
- value: string;
4780
- /**
4781
- * Change from previous point
4782
- */
4783
- change?: {
4784
- [key: string]: unknown;
4785
- };
4786
- /**
4787
- * Total assets at this date (in base currency)
4788
- */
4789
- assets?: string;
4790
- /**
4791
- * Total liabilities at this date (in base currency)
4792
- */
4793
- liabilities?: string;
4794
- /**
4795
- * Multi-currency breakdown for this point
4796
- */
4797
- byCurrency?: Array<CurrencyBalanceDto>;
4798
- };
4799
- type TrendSummaryDto = {
4800
- /**
4801
- * Value at start of period
4802
- */
4803
- startValue: string;
4804
- /**
4805
- * Value at end of period
4806
- */
4807
- endValue: string;
4808
- /**
4809
- * Total change over period
4810
- */
4811
- totalChange: string;
4812
- /**
4813
- * Total change percentage
4814
- */
4815
- totalChangePercentage: string;
4816
- };
4817
- type MultiCurrencyPointDto = {
4818
- /**
4819
- * Date in YYYY-MM-DD format
4820
- */
4821
- date: string;
4822
- /**
4823
- * Balances by currency
5040
+ * Historical FX rate applied to cost basis
4824
5041
  */
4825
- byCurrency: Array<CurrencyBalanceDto>;
4826
- };
4827
- type PortfolioTrendsResponseDto = {
5042
+ costFxRate?: FxRateDto | null;
4828
5043
  /**
4829
- * Time series data points
5044
+ * FX rate applied to market value
4830
5045
  */
4831
- series: Array<TimeSeriesPointDto>;
5046
+ marketFxRate?: FxRateDto | null;
4832
5047
  /**
4833
- * Period summary
5048
+ * Share of invested assets % (Decimal string); only for invested chartTokens
4834
5049
  */
4835
- summary: TrendSummaryDto;
5050
+ pctOfInvestedAssets?: {
5051
+ [key: string]: unknown;
5052
+ } | null;
4836
5053
  /**
4837
- * Period requested
5054
+ * Cumulative realized P&L on sold lots (asOf-date cutoff); null when the method has no applicable sells, a sell lacks a price, or any required FX rate is missing (never-mix). When a sell spans multiple currencies (cross-currency sale), amount and currency reflect the base currency; baseCcyEquivalent is always the authoritative dual-FX figure
4838
5055
  */
4839
- period: string;
5056
+ realizedPnl?: MonetaryDto | null;
5057
+ };
5058
+ /**
5059
+ * Chart segment token (libs/common resolver)
5060
+ */
5061
+ type chartToken = 'equity' | 'fund' | 'bond' | 'cash' | 'other';
5062
+ type HoldingPnlWarningDto = {
4840
5063
  /**
4841
- * Data granularity
5064
+ * Warning type
4842
5065
  */
4843
- granularity: string;
5066
+ type: 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5067
+ symbol?: {
5068
+ [key: string]: unknown;
5069
+ } | null;
5070
+ accountId?: {
5071
+ [key: string]: unknown;
5072
+ } | null;
5073
+ currency?: {
5074
+ [key: string]: unknown;
5075
+ } | null;
5076
+ };
5077
+ /**
5078
+ * Warning type
5079
+ */
5080
+ type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
5081
+ type HoldingPnlResponseDto = {
5082
+ asOfDate: string;
5083
+ baseCurrency: string;
4844
5084
  /**
4845
- * Base currency for converted values
5085
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4846
5086
  */
4847
- currency: string;
5087
+ method: 'average' | 'FIFO';
5088
+ rows: Array<HoldingPnlRowDto>;
5089
+ warnings: Array<HoldingPnlWarningDto>;
5090
+ };
5091
+ /**
5092
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
5093
+ */
5094
+ type method = 'average' | 'FIFO';
5095
+ type AnonymousLoginDto = {
4848
5096
  /**
4849
- * Multi-currency time series (each point has currency breakdown)
5097
+ * Access token for anonymous login
4850
5098
  */
4851
- byCurrency?: Array<MultiCurrencyPointDto>;
5099
+ accessToken: string;
5100
+ };
5101
+ type AnonymousLoginResponseDto = {
4852
5102
  /**
4853
- * Exchange rate warnings
5103
+ * JWT auth token
4854
5104
  */
4855
- warnings?: Array<ExchangeRateWarningDto>;
5105
+ authToken: string;
4856
5106
  };
4857
- type CashFlowPointDto = {
5107
+ type SymbolSearchResultDto = {
5108
+ symbol: string;
5109
+ name?: {
5110
+ [key: string]: unknown;
5111
+ } | null;
5112
+ exchange?: {
5113
+ [key: string]: unknown;
5114
+ } | null;
4858
5115
  /**
4859
- * Month key (YYYY-MM)
5116
+ * OpenBB asset_type (e.g. stock, etf)
4860
5117
  */
4861
- month: string;
5118
+ assetType?: {
5119
+ [key: string]: unknown;
5120
+ } | null;
4862
5121
  /**
4863
- * Income in base currency (absolute, converted)
5122
+ * IGN asset class (region.types.ts ASSET_CLASSES)
4864
5123
  */
4865
- income: string;
5124
+ assetClass?: {
5125
+ [key: string]: unknown;
5126
+ } | null;
4866
5127
  /**
4867
- * Expense in base currency (absolute, converted)
5128
+ * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
4868
5129
  */
4869
- expense: string;
5130
+ assetSubClass?: {
5131
+ [key: string]: unknown;
5132
+ } | null;
4870
5133
  /**
4871
- * netSavings = income expense (savings positive)
5134
+ * Trading currency (extra_data or inferred from exchange)
4872
5135
  */
4873
- netSavings: string;
5136
+ currency?: {
5137
+ [key: string]: unknown;
5138
+ } | null;
4874
5139
  };
4875
- type CashFlowTrendSummaryDto = {
5140
+ type SymbolQuoteDto = {
5141
+ symbol?: string;
5142
+ name?: {
5143
+ [key: string]: unknown;
5144
+ } | null;
5145
+ exchange?: {
5146
+ [key: string]: unknown;
5147
+ } | null;
4876
5148
  /**
4877
- * Total income across the period
5149
+ * OpenBB asset_type
4878
5150
  */
4879
- totalIncome: string;
5151
+ assetType?: {
5152
+ [key: string]: unknown;
5153
+ } | null;
4880
5154
  /**
4881
- * Total expense across the period
5155
+ * IGN asset class
4882
5156
  */
4883
- totalExpense: string;
5157
+ assetClass?: {
5158
+ [key: string]: unknown;
5159
+ } | null;
4884
5160
  /**
4885
- * income expense across the period
5161
+ * IGN asset sub-class
4886
5162
  */
4887
- totalNetSavings: string;
5163
+ assetSubClass?: {
5164
+ [key: string]: unknown;
5165
+ } | null;
4888
5166
  /**
4889
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
5167
+ * Trading currency (extra_data or inferred from exchange)
4890
5168
  */
4891
- averageMonthlyNetSavings: string;
4892
- };
4893
- type CashFlowTrendsResponseDto = {
5169
+ currency?: {
5170
+ [key: string]: unknown;
5171
+ } | null;
4894
5172
  /**
4895
- * Monthly cash-flow series (fixed N-month window, zero-filled)
5173
+ * Latest price (Decimal string)
4896
5174
  */
4897
- series: Array<CashFlowPointDto>;
5175
+ price?: {
5176
+ [key: string]: unknown;
5177
+ } | null;
4898
5178
  /**
4899
- * Period totals
5179
+ * Date the price was observed (ISO yyyy-MM-dd)
4900
5180
  */
4901
- summary: CashFlowTrendSummaryDto;
5181
+ priceDate?: {
5182
+ [key: string]: unknown;
5183
+ } | null;
4902
5184
  /**
4903
- * Period requested
5185
+ * Change vs previous close, in percentage points (1.7 == 1.7%). openbb stores change_percent as a normalized decimal; this exposes percentage points for frontend convenience.
4904
5186
  */
4905
- period: string;
5187
+ changePercent?: {
5188
+ [key: string]: unknown;
5189
+ } | null;
4906
5190
  /**
4907
- * Data granularity (v1 returns month buckets)
5191
+ * Previous close (Decimal string)
4908
5192
  */
4909
- granularity: string;
5193
+ prevClose?: {
5194
+ [key: string]: unknown;
5195
+ } | null;
4910
5196
  /**
4911
- * Base currency for converted values
5197
+ * Day open (Decimal string)
4912
5198
  */
4913
- currency: string;
5199
+ open?: {
5200
+ [key: string]: unknown;
5201
+ } | null;
4914
5202
  /**
4915
- * Exchange rate warnings (e.g. missing rate for a currency)
5203
+ * Day high (Decimal string)
4916
5204
  */
4917
- warnings?: Array<ExchangeRateWarningDto>;
4918
- };
4919
- type GenerateSnapshotBody = unknown;
4920
- type GenerateSnapshotResponse = unknown;
4921
- type BackfillSnapshotsBody = unknown;
4922
- type BackfillSnapshotsResponse = unknown;
4923
- type AnonymousLoginDto = {
5205
+ high?: {
5206
+ [key: string]: unknown;
5207
+ } | null;
4924
5208
  /**
4925
- * Access token for anonymous login
5209
+ * Day low (Decimal string)
4926
5210
  */
4927
- accessToken: string;
4928
- };
4929
- type AnonymousLoginResponseDto = {
5211
+ low?: {
5212
+ [key: string]: unknown;
5213
+ } | null;
4930
5214
  /**
4931
- * JWT auth token
5215
+ * Day volume (Decimal string)
4932
5216
  */
4933
- authToken: string;
5217
+ volume?: {
5218
+ [key: string]: unknown;
5219
+ } | null;
5220
+ /**
5221
+ * 52-week high (Decimal string)
5222
+ */
5223
+ yearHigh?: {
5224
+ [key: string]: unknown;
5225
+ } | null;
5226
+ /**
5227
+ * 52-week low (Decimal string)
5228
+ */
5229
+ yearLow?: {
5230
+ [key: string]: unknown;
5231
+ } | null;
4934
5232
  };
4935
5233
  type AccountControllerCreateData = {
4936
5234
  /**
4937
5235
  * Region code for tenant context
4938
5236
  */
4939
- region: 'cn' | 'us' | 'de' | 'gb';
5237
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4940
5238
  requestBody: CreateAccountDto;
4941
5239
  };
4942
5240
  type AccountControllerCreateResponse = AccountResponseDto;
@@ -4956,7 +5254,7 @@ type AccountControllerFindAllData = {
4956
5254
  /**
4957
5255
  * Region code for tenant context
4958
5256
  */
4959
- region: 'cn' | 'us' | 'de' | 'gb';
5257
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4960
5258
  /**
4961
5259
  * Search term for account path
4962
5260
  */
@@ -4979,7 +5277,7 @@ type AccountControllerFindOneData = {
4979
5277
  /**
4980
5278
  * Region code for tenant context
4981
5279
  */
4982
- region: 'cn' | 'us' | 'de' | 'gb';
5280
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4983
5281
  };
4984
5282
  type AccountControllerFindOneResponse = AccountResponseDto;
4985
5283
  type AccountControllerUpdateData = {
@@ -4990,7 +5288,7 @@ type AccountControllerUpdateData = {
4990
5288
  /**
4991
5289
  * Region code for tenant context
4992
5290
  */
4993
- region: 'cn' | 'us' | 'de' | 'gb';
5291
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
4994
5292
  requestBody: UpdateAccountDto;
4995
5293
  };
4996
5294
  type AccountControllerUpdateResponse = AccountResponseDto;
@@ -5002,7 +5300,7 @@ type AccountControllerDeleteData = {
5002
5300
  /**
5003
5301
  * Region code for tenant context
5004
5302
  */
5005
- region: 'cn' | 'us' | 'de' | 'gb';
5303
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5006
5304
  };
5007
5305
  type AccountControllerDeleteResponse = void;
5008
5306
  type AccountControllerCloseData = {
@@ -5013,7 +5311,7 @@ type AccountControllerCloseData = {
5013
5311
  /**
5014
5312
  * Region code for tenant context
5015
5313
  */
5016
- region: 'cn' | 'us' | 'de' | 'gb';
5314
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5017
5315
  requestBody: CloseAccountDto;
5018
5316
  };
5019
5317
  type AccountControllerCloseResponse = AccountResponseDto;
@@ -5025,7 +5323,7 @@ type AccountControllerReopenData = {
5025
5323
  /**
5026
5324
  * Region code for tenant context
5027
5325
  */
5028
- region: 'cn' | 'us' | 'de' | 'gb';
5326
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5029
5327
  requestBody: ReopenAccountDto;
5030
5328
  };
5031
5329
  type AccountControllerReopenResponse = AccountResponseDto;
@@ -5037,7 +5335,7 @@ type AccountControllerAddOpeningBalanceData = {
5037
5335
  /**
5038
5336
  * Region code for tenant context
5039
5337
  */
5040
- region: 'cn' | 'us' | 'de' | 'gb';
5338
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5041
5339
  requestBody: CreateOpeningBalanceDto;
5042
5340
  };
5043
5341
  type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
@@ -5045,7 +5343,7 @@ type AccountStandardsControllerGetTemplatesData = {
5045
5343
  /**
5046
5344
  * Region code (cn, us, de)
5047
5345
  */
5048
- region: 'cn' | 'us' | 'de' | 'gb';
5346
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5049
5347
  /**
5050
5348
  * Search term for path or description
5051
5349
  */
@@ -5064,21 +5362,21 @@ type AccountStandardsControllerGetTemplateMetadataData = {
5064
5362
  /**
5065
5363
  * Region code for tenant context
5066
5364
  */
5067
- region: 'cn' | 'us' | 'de' | 'gb';
5365
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5068
5366
  };
5069
5367
  type AccountStandardsControllerGetTemplateMetadataResponse = TemplateMetadataResponseDto;
5070
5368
  type AccountStandardsControllerGetRegionsData = {
5071
5369
  /**
5072
5370
  * Region code for tenant context
5073
5371
  */
5074
- region: 'cn' | 'us' | 'de' | 'gb';
5372
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5075
5373
  };
5076
5374
  type AccountStandardsControllerGetRegionsResponse = RegionsMetadataResponseDto;
5077
5375
  type TransactionControllerCreateData = {
5078
5376
  /**
5079
5377
  * Region code for tenant context
5080
5378
  */
5081
- region: 'cn' | 'us' | 'de' | 'gb';
5379
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5082
5380
  /**
5083
5381
  * Transaction data with postings
5084
5382
  */
@@ -5113,7 +5411,7 @@ type TransactionControllerListData = {
5113
5411
  /**
5114
5412
  * Region code for tenant context
5115
5413
  */
5116
- region: 'cn' | 'us' | 'de' | 'gb';
5414
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5117
5415
  /**
5118
5416
  * Search in narration and payee fields (max 200 chars)
5119
5417
  */
@@ -5128,7 +5426,7 @@ type TransactionControllerCreateBatchData = {
5128
5426
  /**
5129
5427
  * Region code for tenant context
5130
5428
  */
5131
- region: 'cn' | 'us' | 'de' | 'gb';
5429
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5132
5430
  requestBody: BatchCreateTransactionDto;
5133
5431
  };
5134
5432
  type TransactionControllerCreateBatchResponse = BatchTransactionResponseDto;
@@ -5140,7 +5438,7 @@ type TransactionControllerCorrectData = {
5140
5438
  /**
5141
5439
  * Region code for tenant context
5142
5440
  */
5143
- region: 'cn' | 'us' | 'de' | 'gb';
5441
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5144
5442
  requestBody: CorrectTransactionDto;
5145
5443
  };
5146
5444
  type TransactionControllerCorrectResponse = TransactionDetailDto;
@@ -5156,7 +5454,7 @@ type TransactionControllerSuggestTagsData = {
5156
5454
  /**
5157
5455
  * Region code for tenant context
5158
5456
  */
5159
- region: 'cn' | 'us' | 'de' | 'gb';
5457
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5160
5458
  /**
5161
5459
  * usage (default) or name
5162
5460
  */
@@ -5171,7 +5469,7 @@ type TransactionControllerGetDetailData = {
5171
5469
  /**
5172
5470
  * Region code for tenant context
5173
5471
  */
5174
- region: 'cn' | 'us' | 'de' | 'gb';
5472
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5175
5473
  };
5176
5474
  type TransactionControllerGetDetailResponse = TransactionDetailDto;
5177
5475
  type TransactionControllerUpdateData = {
@@ -5182,7 +5480,7 @@ type TransactionControllerUpdateData = {
5182
5480
  /**
5183
5481
  * Region code for tenant context
5184
5482
  */
5185
- region: 'cn' | 'us' | 'de' | 'gb';
5483
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5186
5484
  /**
5187
5485
  * Fields to update (all optional)
5188
5486
  */
@@ -5197,7 +5495,7 @@ type TransactionControllerDeleteData = {
5197
5495
  /**
5198
5496
  * Region code for tenant context
5199
5497
  */
5200
- region: 'cn' | 'us' | 'de' | 'gb';
5498
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5201
5499
  };
5202
5500
  type TransactionControllerDeleteResponse = void;
5203
5501
  type BalanceControllerGetBalanceData = {
@@ -5216,14 +5514,14 @@ type BalanceControllerGetBalanceData = {
5216
5514
  /**
5217
5515
  * Region code for tenant context
5218
5516
  */
5219
- region: 'cn' | 'us' | 'de' | 'gb';
5517
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5220
5518
  };
5221
5519
  type BalanceControllerGetBalanceResponse = BalanceResponseDto;
5222
5520
  type BalanceControllerGetMultiCurrencyBalanceData = {
5223
5521
  /**
5224
5522
  * Region code for tenant context
5225
5523
  */
5226
- region: 'cn' | 'us' | 'de' | 'gb';
5524
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5227
5525
  };
5228
5526
  type BalanceControllerGetMultiCurrencyBalanceResponse = MultiCurrencyBalanceResponseDto;
5229
5527
  type ReviewControllerFindAllData = {
@@ -5242,7 +5540,7 @@ type ReviewControllerFindAllData = {
5242
5540
  /**
5243
5541
  * Region code for tenant context
5244
5542
  */
5245
- region: 'cn' | 'us' | 'de' | 'gb';
5543
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5246
5544
  /**
5247
5545
  * Sort order
5248
5546
  */
@@ -5257,7 +5555,7 @@ type ReviewControllerGetStatsData = {
5257
5555
  /**
5258
5556
  * Region code for tenant context
5259
5557
  */
5260
- region: 'cn' | 'us' | 'de' | 'gb';
5558
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5261
5559
  };
5262
5560
  type ReviewControllerGetStatsResponse = ReviewStatsDto;
5263
5561
  type ReviewControllerFindOneData = {
@@ -5268,7 +5566,7 @@ type ReviewControllerFindOneData = {
5268
5566
  /**
5269
5567
  * Region code for tenant context
5270
5568
  */
5271
- region: 'cn' | 'us' | 'de' | 'gb';
5569
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5272
5570
  };
5273
5571
  type ReviewControllerFindOneResponse = ReviewDetailDto;
5274
5572
  type ReviewControllerResolveData = {
@@ -5279,7 +5577,7 @@ type ReviewControllerResolveData = {
5279
5577
  /**
5280
5578
  * Region code for tenant context
5281
5579
  */
5282
- region: 'cn' | 'us' | 'de' | 'gb';
5580
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5283
5581
  requestBody: ResolveReviewDto;
5284
5582
  };
5285
5583
  type ReviewControllerResolveResponse = ResolveResultDto;
@@ -5291,14 +5589,14 @@ type ReviewControllerUndoData = {
5291
5589
  /**
5292
5590
  * Region code for tenant context
5293
5591
  */
5294
- region: 'cn' | 'us' | 'de' | 'gb';
5592
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5295
5593
  };
5296
5594
  type ReviewControllerUndoResponse = UndoResultDto;
5297
5595
  type ReviewControllerBatchResolveData = {
5298
5596
  /**
5299
5597
  * Region code for tenant context
5300
5598
  */
5301
- region: 'cn' | 'us' | 'de' | 'gb';
5599
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5302
5600
  /**
5303
5601
  * Batch resolution request containing review IDs and action
5304
5602
  */
@@ -5443,7 +5741,7 @@ type CommodityControllerCreateData = {
5443
5741
  /**
5444
5742
  * Region code for tenant context
5445
5743
  */
5446
- region: 'cn' | 'us' | 'de' | 'gb';
5744
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5447
5745
  requestBody: CreateCommodityDto;
5448
5746
  };
5449
5747
  type CommodityControllerCreateResponse = CommodityResponseDto;
@@ -5451,7 +5749,7 @@ type CommodityControllerFindAllData = {
5451
5749
  /**
5452
5750
  * Region code for tenant context
5453
5751
  */
5454
- region: 'cn' | 'us' | 'de' | 'gb';
5752
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5455
5753
  /**
5456
5754
  * Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
5457
5755
  */
@@ -5466,7 +5764,7 @@ type CommodityControllerFindOneData = {
5466
5764
  /**
5467
5765
  * Region code for tenant context
5468
5766
  */
5469
- region: 'cn' | 'us' | 'de' | 'gb';
5767
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5470
5768
  /**
5471
5769
  * Commodity symbol
5472
5770
  */
@@ -5477,7 +5775,7 @@ type CommodityControllerUpdateData = {
5477
5775
  /**
5478
5776
  * Region code for tenant context
5479
5777
  */
5480
- region: 'cn' | 'us' | 'de' | 'gb';
5778
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5481
5779
  requestBody: UpdateCommodityDto;
5482
5780
  /**
5483
5781
  * Commodity symbol
@@ -5489,7 +5787,7 @@ type CommodityControllerDeleteData = {
5489
5787
  /**
5490
5788
  * Region code for tenant context
5491
5789
  */
5492
- region: 'cn' | 'us' | 'de' | 'gb';
5790
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5493
5791
  /**
5494
5792
  * Commodity symbol
5495
5793
  */
@@ -5500,7 +5798,7 @@ type CommodityControllerGetOrCreateData = {
5500
5798
  /**
5501
5799
  * Region code for tenant context
5502
5800
  */
5503
- region: 'cn' | 'us' | 'de' | 'gb';
5801
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5504
5802
  /**
5505
5803
  * Commodity symbol
5506
5804
  */
@@ -5511,14 +5809,14 @@ type CommodityControllerBulkCreateData = {
5511
5809
  /**
5512
5810
  * Region code for tenant context
5513
5811
  */
5514
- region: 'cn' | 'us' | 'de' | 'gb';
5812
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5515
5813
  };
5516
5814
  type CommodityControllerBulkCreateResponse = Array<CommodityResponseDto>;
5517
5815
  type PriceControllerCreateData = {
5518
5816
  /**
5519
5817
  * Region code for tenant context
5520
5818
  */
5521
- region: 'cn' | 'us' | 'de' | 'gb';
5819
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5522
5820
  requestBody: CreateBeanPriceDto;
5523
5821
  };
5524
5822
  type PriceControllerCreateResponse = PriceResponseDto;
@@ -5550,7 +5848,7 @@ type PriceControllerFindAllData = {
5550
5848
  /**
5551
5849
  * Region code for tenant context
5552
5850
  */
5553
- region: 'cn' | 'us' | 'de' | 'gb';
5851
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5554
5852
  /**
5555
5853
  * Search term for currency or quoteCurrency (case-insensitive partial match)
5556
5854
  */
@@ -5565,7 +5863,7 @@ type PriceControllerFindOneData = {
5565
5863
  /**
5566
5864
  * Region code for tenant context
5567
5865
  */
5568
- region: 'cn' | 'us' | 'de' | 'gb';
5866
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5569
5867
  };
5570
5868
  type PriceControllerFindOneResponse = PriceResponseDto;
5571
5869
  type PriceControllerUpdateData = {
@@ -5576,7 +5874,7 @@ type PriceControllerUpdateData = {
5576
5874
  /**
5577
5875
  * Region code for tenant context
5578
5876
  */
5579
- region: 'cn' | 'us' | 'de' | 'gb';
5877
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5580
5878
  requestBody: UpdateBeanPriceDto;
5581
5879
  };
5582
5880
  type PriceControllerUpdateResponse = PriceResponseDto;
@@ -5588,14 +5886,14 @@ type PriceControllerDeleteData = {
5588
5886
  /**
5589
5887
  * Region code for tenant context
5590
5888
  */
5591
- region: 'cn' | 'us' | 'de' | 'gb';
5889
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5592
5890
  };
5593
5891
  type PriceControllerDeleteResponse = void;
5594
5892
  type PriceControllerBulkCreateData = {
5595
5893
  /**
5596
5894
  * Region code for tenant context
5597
5895
  */
5598
- region: 'cn' | 'us' | 'de' | 'gb';
5896
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5599
5897
  requestBody: Array<string>;
5600
5898
  };
5601
5899
  type PriceControllerBulkCreateResponse = Array<PriceResponseDto>;
@@ -5603,7 +5901,7 @@ type RecurringRuleControllerCreateData = {
5603
5901
  /**
5604
5902
  * Region code for tenant context
5605
5903
  */
5606
- region: 'cn' | 'us' | 'de' | 'gb';
5904
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5607
5905
  requestBody: CreateRecurringRuleDto;
5608
5906
  };
5609
5907
  type RecurringRuleControllerCreateResponse = RecurringRuleResponseDto;
@@ -5623,14 +5921,14 @@ type RecurringRuleControllerFindAllData = {
5623
5921
  /**
5624
5922
  * Region code for tenant context
5625
5923
  */
5626
- region: 'cn' | 'us' | 'de' | 'gb';
5924
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5627
5925
  };
5628
5926
  type RecurringRuleControllerFindAllResponse = Array<RecurringRuleResponseDto>;
5629
5927
  type RecurringRuleControllerCreateFromTransactionData = {
5630
5928
  /**
5631
5929
  * Region code for tenant context
5632
5930
  */
5633
- region: 'cn' | 'us' | 'de' | 'gb';
5931
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5634
5932
  requestBody: CreateRuleFromTransactionDto;
5635
5933
  /**
5636
5934
  * Source transaction ID
@@ -5646,7 +5944,7 @@ type RecurringRuleControllerFindOneData = {
5646
5944
  /**
5647
5945
  * Region code for tenant context
5648
5946
  */
5649
- region: 'cn' | 'us' | 'de' | 'gb';
5947
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5650
5948
  };
5651
5949
  type RecurringRuleControllerFindOneResponse = RecurringRuleResponseDto;
5652
5950
  type RecurringRuleControllerUpdateData = {
@@ -5657,7 +5955,7 @@ type RecurringRuleControllerUpdateData = {
5657
5955
  /**
5658
5956
  * Region code for tenant context
5659
5957
  */
5660
- region: 'cn' | 'us' | 'de' | 'gb';
5958
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5661
5959
  requestBody: UpdateRecurringRuleDto;
5662
5960
  };
5663
5961
  type RecurringRuleControllerUpdateResponse = RecurringRuleResponseDto;
@@ -5669,7 +5967,7 @@ type RecurringRuleControllerDeleteData = {
5669
5967
  /**
5670
5968
  * Region code for tenant context
5671
5969
  */
5672
- region: 'cn' | 'us' | 'de' | 'gb';
5970
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5673
5971
  };
5674
5972
  type RecurringRuleControllerDeleteResponse = void;
5675
5973
  type RecurringRuleControllerGetWithStatsData = {
@@ -5680,7 +5978,7 @@ type RecurringRuleControllerGetWithStatsData = {
5680
5978
  /**
5681
5979
  * Region code for tenant context
5682
5980
  */
5683
- region: 'cn' | 'us' | 'de' | 'gb';
5981
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5684
5982
  };
5685
5983
  type RecurringRuleControllerGetWithStatsResponse = RecurringRuleWithStatsResponseDto;
5686
5984
  type ExpectedTransactionControllerFindAllData = {
@@ -5691,7 +5989,7 @@ type ExpectedTransactionControllerFindAllData = {
5691
5989
  /**
5692
5990
  * Region code for tenant context
5693
5991
  */
5694
- region: 'cn' | 'us' | 'de' | 'gb';
5992
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5695
5993
  /**
5696
5994
  * Filter by recurring rule ID
5697
5995
  */
@@ -5710,93 +6008,207 @@ type ExpectedTransactionControllerFindOverdueData = {
5710
6008
  /**
5711
6009
  * Region code for tenant context
5712
6010
  */
5713
- region: 'cn' | 'us' | 'de' | 'gb';
6011
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5714
6012
  };
5715
6013
  type ExpectedTransactionControllerFindOverdueResponse = ExpectedTransactionListResponseDto;
5716
6014
  type ExpectedTransactionControllerFindOneData = {
5717
6015
  /**
5718
6016
  * Expected transaction ID
5719
6017
  */
5720
- id: string;
6018
+ id: string;
6019
+ /**
6020
+ * Region code for tenant context
6021
+ */
6022
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6023
+ };
6024
+ type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
6025
+ type ExpectedTransactionControllerSkipData = {
6026
+ /**
6027
+ * Expected transaction ID
6028
+ */
6029
+ id: string;
6030
+ /**
6031
+ * Region code for tenant context
6032
+ */
6033
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6034
+ };
6035
+ type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
6036
+ type ExpectedTransactionControllerUndoSkipData = {
6037
+ /**
6038
+ * Expected transaction ID
6039
+ */
6040
+ id: string;
6041
+ /**
6042
+ * Region code for tenant context
6043
+ */
6044
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6045
+ };
6046
+ type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
6047
+ type ExpectedTransactionControllerConfirmMatchData = {
6048
+ /**
6049
+ * Expected transaction ID
6050
+ */
6051
+ id: string;
6052
+ /**
6053
+ * Region code for tenant context
6054
+ */
6055
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6056
+ requestBody: ConfirmMatchDto;
6057
+ };
6058
+ type ExpectedTransactionControllerConfirmMatchResponse = unknown;
6059
+ type ExpectedTransactionControllerUnmatchData = {
6060
+ /**
6061
+ * Expected transaction ID
6062
+ */
6063
+ id: string;
6064
+ /**
6065
+ * Region code for tenant context
6066
+ */
6067
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6068
+ };
6069
+ type ExpectedTransactionControllerUnmatchResponse = unknown;
6070
+ type ExpectedTransactionControllerEnterNowData = {
6071
+ /**
6072
+ * Expected transaction ID
6073
+ */
6074
+ id: string;
6075
+ /**
6076
+ * Region code for tenant context
6077
+ */
6078
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6079
+ requestBody: EnterNowDto;
6080
+ };
6081
+ type ExpectedTransactionControllerEnterNowResponse = unknown;
6082
+ type ForecastControllerGetForecastData = {
6083
+ /**
6084
+ * Number of months to forecast (1-12, default 3)
6085
+ */
6086
+ months?: number;
6087
+ /**
6088
+ * Region code for tenant context
6089
+ */
6090
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6091
+ };
6092
+ type ForecastControllerGetForecastResponse = ForecastResponseDto;
6093
+ type ReportingControllerGetPortfolioTrendsData = {
6094
+ /**
6095
+ * Data granularity
6096
+ */
6097
+ granularity?: 'day' | 'week' | 'month';
6098
+ /**
6099
+ * Time period
6100
+ */
6101
+ period?: '1m' | '3m' | '6m' | '1y';
6102
+ /**
6103
+ * Region code for tenant context
6104
+ */
6105
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6106
+ };
6107
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6108
+ type ReportingControllerGetCashFlowTrendsData = {
6109
+ /**
6110
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6111
+ */
6112
+ granularity?: 'day' | 'week' | 'month';
6113
+ /**
6114
+ * Time period
6115
+ */
6116
+ period?: '1m' | '3m' | '6m' | '1y';
5721
6117
  /**
5722
6118
  * Region code for tenant context
5723
6119
  */
5724
- region: 'cn' | 'us' | 'de' | 'gb';
6120
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5725
6121
  };
5726
- type ExpectedTransactionControllerFindOneResponse = ExpectedTransactionResponseDto;
5727
- type ExpectedTransactionControllerSkipData = {
5728
- /**
5729
- * Expected transaction ID
5730
- */
5731
- id: string;
6122
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6123
+ type ReportingControllerGenerateSnapshotData = {
5732
6124
  /**
5733
6125
  * Region code for tenant context
5734
6126
  */
5735
- region: 'cn' | 'us' | 'de' | 'gb';
5736
- };
5737
- type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
5738
- type ExpectedTransactionControllerUndoSkipData = {
6127
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5739
6128
  /**
5740
- * Expected transaction ID
6129
+ * Optional date (defaults to today)
5741
6130
  */
5742
- id: string;
6131
+ requestBody: GenerateSnapshotBody;
6132
+ };
6133
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6134
+ type ReportingControllerBackfillSnapshotsData = {
5743
6135
  /**
5744
6136
  * Region code for tenant context
5745
6137
  */
5746
- region: 'cn' | 'us' | 'de' | 'gb';
6138
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6139
+ requestBody: BackfillSnapshotsBody;
5747
6140
  };
5748
- type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
5749
- type ExpectedTransactionControllerConfirmMatchData = {
6141
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6142
+ type UserControllerDeleteOwnUserData = {
6143
+ requestBody: DeleteOwnUserDto;
6144
+ };
6145
+ type UserControllerDeleteOwnUserResponse = void;
6146
+ type UserControllerGetUserData = {
6147
+ acceptLanguage: string;
6148
+ };
6149
+ type UserControllerGetUserResponse = UserResponseDto;
6150
+ type UserControllerSignupUserData = {
6151
+ requestBody: SignupDto;
6152
+ };
6153
+ type UserControllerSignupUserResponse = SignupResponseDto;
6154
+ type UserControllerDeleteUserData = {
5750
6155
  /**
5751
- * Expected transaction ID
6156
+ * User ID to delete
5752
6157
  */
5753
6158
  id: string;
5754
- /**
5755
- * Region code for tenant context
5756
- */
5757
- region: 'cn' | 'us' | 'de' | 'gb';
5758
- requestBody: ConfirmMatchDto;
5759
6159
  };
5760
- type ExpectedTransactionControllerConfirmMatchResponse = unknown;
5761
- type ExpectedTransactionControllerUnmatchData = {
6160
+ type UserControllerDeleteUserResponse = void;
6161
+ type UserControllerGetUserInfoData = {
5762
6162
  /**
5763
- * Expected transaction ID
6163
+ * User ID
5764
6164
  */
5765
6165
  id: string;
6166
+ };
6167
+ type UserControllerGetUserInfoResponse = unknown;
6168
+ type UserControllerUpdateUserSettingData = {
6169
+ requestBody: UpdateUserSettingDto;
6170
+ };
6171
+ type UserControllerUpdateUserSettingResponse = unknown;
6172
+ type UserControllerGetAllUserSettingsByPageData = {
5766
6173
  /**
5767
- * Region code for tenant context
6174
+ * Page number
5768
6175
  */
5769
- region: 'cn' | 'us' | 'de' | 'gb';
5770
- };
5771
- type ExpectedTransactionControllerUnmatchResponse = unknown;
5772
- type ExpectedTransactionControllerEnterNowData = {
6176
+ pageNo: number;
5773
6177
  /**
5774
- * Expected transaction ID
6178
+ * Page size
5775
6179
  */
5776
- id: string;
6180
+ pageSize: number;
6181
+ };
6182
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6183
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6184
+ type PropertyControllerGetAllResponse = unknown;
6185
+ type PropertyControllerGetByKeyData = {
5777
6186
  /**
5778
- * Region code for tenant context
6187
+ * Property key
5779
6188
  */
5780
- region: 'cn' | 'us' | 'de' | 'gb';
5781
- requestBody: EnterNowDto;
6189
+ key: string;
5782
6190
  };
5783
- type ExpectedTransactionControllerEnterNowResponse = unknown;
5784
- type ForecastControllerGetForecastData = {
6191
+ type PropertyControllerGetByKeyResponse = unknown;
6192
+ type PropertyControllerUpdateData = {
5785
6193
  /**
5786
- * Number of months to forecast (1-12, default 3)
6194
+ * Property key
5787
6195
  */
5788
- months?: number;
6196
+ key: string;
6197
+ requestBody: UpdatePropertyDto;
6198
+ };
6199
+ type PropertyControllerUpdateResponse = unknown;
6200
+ type PropertyControllerDeleteData = {
5789
6201
  /**
5790
- * Region code for tenant context
6202
+ * Property key
5791
6203
  */
5792
- region: 'cn' | 'us' | 'de' | 'gb';
6204
+ key: string;
5793
6205
  };
5794
- type ForecastControllerGetForecastResponse = ForecastResponseDto;
6206
+ type PropertyControllerDeleteResponse = void;
5795
6207
  type TransactionRuleControllerCreateData = {
5796
6208
  /**
5797
6209
  * Region code for tenant context
5798
6210
  */
5799
- region: 'cn' | 'us' | 'de' | 'gb';
6211
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5800
6212
  requestBody: CreateTransactionRuleDto;
5801
6213
  };
5802
6214
  type TransactionRuleControllerCreateResponse = TransactionRuleResponseDto;
@@ -5824,14 +6236,14 @@ type TransactionRuleControllerListData = {
5824
6236
  /**
5825
6237
  * Region code for tenant context
5826
6238
  */
5827
- region: 'cn' | 'us' | 'de' | 'gb';
6239
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5828
6240
  };
5829
6241
  type TransactionRuleControllerListResponse = TransactionRuleListResponseDto;
5830
6242
  type TransactionRuleControllerValidateData = {
5831
6243
  /**
5832
6244
  * Region code for tenant context
5833
6245
  */
5834
- region: 'cn' | 'us' | 'de' | 'gb';
6246
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5835
6247
  requestBody: ValidateRuleDto;
5836
6248
  };
5837
6249
  type TransactionRuleControllerValidateResponse = ValidateRuleResponseDto;
@@ -5839,7 +6251,7 @@ type TransactionRuleControllerBulkCreateData = {
5839
6251
  /**
5840
6252
  * Region code for tenant context
5841
6253
  */
5842
- region: 'cn' | 'us' | 'de' | 'gb';
6254
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5843
6255
  requestBody: BulkCreateRulesDto;
5844
6256
  };
5845
6257
  type TransactionRuleControllerBulkCreateResponse = BulkCreateRulesResponseDto;
@@ -5851,7 +6263,7 @@ type TransactionRuleControllerExportData = {
5851
6263
  /**
5852
6264
  * Region code for tenant context
5853
6265
  */
5854
- region: 'cn' | 'us' | 'de' | 'gb';
6266
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5855
6267
  };
5856
6268
  type TransactionRuleControllerExportResponse = ExportRulesResponseDto;
5857
6269
  type TransactionRuleControllerGetStatisticsData = {
@@ -5862,14 +6274,14 @@ type TransactionRuleControllerGetStatisticsData = {
5862
6274
  /**
5863
6275
  * Region code for tenant context
5864
6276
  */
5865
- region: 'cn' | 'us' | 'de' | 'gb';
6277
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5866
6278
  };
5867
6279
  type TransactionRuleControllerGetStatisticsResponse = RuleStatisticsResponseDto;
5868
6280
  type TransactionRuleControllerGetDetailData = {
5869
6281
  /**
5870
6282
  * Region code for tenant context
5871
6283
  */
5872
- region: 'cn' | 'us' | 'de' | 'gb';
6284
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5873
6285
  /**
5874
6286
  * Rule ID
5875
6287
  */
@@ -5880,7 +6292,7 @@ type TransactionRuleControllerUpdateData = {
5880
6292
  /**
5881
6293
  * Region code for tenant context
5882
6294
  */
5883
- region: 'cn' | 'us' | 'de' | 'gb';
6295
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5884
6296
  requestBody: UpdateTransactionRuleDto;
5885
6297
  /**
5886
6298
  * Rule ID to update
@@ -5892,7 +6304,7 @@ type TransactionRuleControllerDeleteData = {
5892
6304
  /**
5893
6305
  * Region code for tenant context
5894
6306
  */
5895
- region: 'cn' | 'us' | 'de' | 'gb';
6307
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5896
6308
  /**
5897
6309
  * Rule ID to delete
5898
6310
  */
@@ -5903,7 +6315,7 @@ type TransactionRuleControllerTestData = {
5903
6315
  /**
5904
6316
  * Region code for tenant context
5905
6317
  */
5906
- region: 'cn' | 'us' | 'de' | 'gb';
6318
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5907
6319
  requestBody: TestRuleDto;
5908
6320
  /**
5909
6321
  * Rule ID to test
@@ -5911,76 +6323,26 @@ type TransactionRuleControllerTestData = {
5911
6323
  ruleId: string;
5912
6324
  };
5913
6325
  type TransactionRuleControllerTestResponse = TestRuleResponseDto;
5914
- type UserControllerDeleteOwnUserData = {
5915
- requestBody: DeleteOwnUserDto;
5916
- };
5917
- type UserControllerDeleteOwnUserResponse = void;
5918
- type UserControllerGetUserData = {
5919
- acceptLanguage: string;
5920
- };
5921
- type UserControllerGetUserResponse = unknown;
5922
- type UserControllerSignupUserData = {
5923
- requestBody: SignupDto;
5924
- };
5925
- type UserControllerSignupUserResponse = SignupResponseDto;
5926
- type UserControllerDeleteUserData = {
5927
- /**
5928
- * User ID to delete
5929
- */
5930
- id: string;
5931
- };
5932
- type UserControllerDeleteUserResponse = void;
5933
- type UserControllerGetUserInfoData = {
5934
- /**
5935
- * User ID
5936
- */
5937
- id: string;
5938
- };
5939
- type UserControllerGetUserInfoResponse = unknown;
5940
- type UserControllerUpdateUserSettingData = {
5941
- requestBody: UpdateUserSettingDto;
5942
- };
5943
- type UserControllerUpdateUserSettingResponse = unknown;
5944
- type UserControllerGetAllUserSettingsByPageData = {
5945
- /**
5946
- * Page number
5947
- */
5948
- pageNo: number;
5949
- /**
5950
- * Page size
5951
- */
5952
- pageSize: number;
5953
- };
5954
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
5955
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
5956
- type PropertyControllerGetAllResponse = unknown;
5957
- type PropertyControllerGetByKeyData = {
6326
+ type CategoryCatalogControllerListData = {
5958
6327
  /**
5959
- * Property key
6328
+ * Region code for tenant context
5960
6329
  */
5961
- key: string;
5962
- };
5963
- type PropertyControllerGetByKeyResponse = unknown;
5964
- type PropertyControllerUpdateData = {
6330
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5965
6331
  /**
5966
- * Property key
6332
+ * Filter by routeBearing (entity-router route() consumes it)
5967
6333
  */
5968
- key: string;
5969
- requestBody: UpdatePropertyDto;
5970
- };
5971
- type PropertyControllerUpdateResponse = unknown;
5972
- type PropertyControllerDeleteData = {
6334
+ routeBearing?: boolean;
5973
6335
  /**
5974
- * Property key
6336
+ * Filter by scenario
5975
6337
  */
5976
- key: string;
6338
+ scenario?: 'expense' | 'income' | 'investment' | 'banking' | 'transfer' | 'payment';
5977
6339
  };
5978
- type PropertyControllerDeleteResponse = void;
6340
+ type CategoryCatalogControllerListResponse = CategoryCatalogListResponseDto;
5979
6341
  type EventControllerCreateData = {
5980
6342
  /**
5981
6343
  * Region code for tenant context (decorative for life events)
5982
6344
  */
5983
- region: 'cn' | 'us' | 'de' | 'gb';
6345
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
5984
6346
  requestBody: CreateBeanEventDto;
5985
6347
  };
5986
6348
  type EventControllerCreateResponse = EventResponseDto;
@@ -6004,7 +6366,7 @@ type EventControllerFindAllData = {
6004
6366
  /**
6005
6367
  * Region code for tenant context (decorative for life events)
6006
6368
  */
6007
- region: 'cn' | 'us' | 'de' | 'gb';
6369
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6008
6370
  /**
6009
6371
  * Filter life events to this date (ISO 8601 format)
6010
6372
  */
@@ -6023,7 +6385,7 @@ type EventControllerFindOneData = {
6023
6385
  /**
6024
6386
  * Region code for tenant context (decorative for life events)
6025
6387
  */
6026
- region: 'cn' | 'us' | 'de' | 'gb';
6388
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6027
6389
  };
6028
6390
  type EventControllerFindOneResponse = EventResponseDto;
6029
6391
  type EventControllerUpdateData = {
@@ -6034,7 +6396,7 @@ type EventControllerUpdateData = {
6034
6396
  /**
6035
6397
  * Region code for tenant context (decorative for life events)
6036
6398
  */
6037
- region: 'cn' | 'us' | 'de' | 'gb';
6399
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6038
6400
  requestBody: UpdateBeanEventDto;
6039
6401
  };
6040
6402
  type EventControllerUpdateResponse = EventResponseDto;
@@ -6046,7 +6408,7 @@ type EventControllerDeleteData = {
6046
6408
  /**
6047
6409
  * Region code for tenant context (decorative for life events)
6048
6410
  */
6049
- region: 'cn' | 'us' | 'de' | 'gb';
6411
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6050
6412
  };
6051
6413
  type EventControllerDeleteResponse = void;
6052
6414
  type EventControllerGetSliceData = {
@@ -6059,14 +6421,14 @@ type EventControllerGetSliceData = {
6059
6421
  /**
6060
6422
  * Region code for tenant context (decorative for life events)
6061
6423
  */
6062
- region: 'cn' | 'us' | 'de' | 'gb';
6424
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6063
6425
  };
6064
6426
  type EventControllerGetSliceResponse = unknown;
6065
6427
  type OnboardingControllerBootstrapData = {
6066
6428
  /**
6067
6429
  * Region code for tenant context
6068
6430
  */
6069
- region: 'cn' | 'us' | 'de' | 'gb';
6431
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6070
6432
  requestBody: OnboardingDto;
6071
6433
  };
6072
6434
  type OnboardingControllerBootstrapResponse = unknown;
@@ -6074,7 +6436,7 @@ type ReconciliationControllerComputeData = {
6074
6436
  /**
6075
6437
  * Region code for tenant context (decorative for reconciliation)
6076
6438
  */
6077
- region: 'cn' | 'us' | 'de' | 'gb';
6439
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6078
6440
  requestBody: ComputeReconciliationDto;
6079
6441
  };
6080
6442
  type ReconciliationControllerComputeResponse = ReconciliationComputeResultDto;
@@ -6082,7 +6444,7 @@ type ReconciliationControllerAssertData = {
6082
6444
  /**
6083
6445
  * Region code for tenant context (decorative for reconciliation)
6084
6446
  */
6085
- region: 'cn' | 'us' | 'de' | 'gb';
6447
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6086
6448
  requestBody: AssertReconciliationDto;
6087
6449
  };
6088
6450
  type ReconciliationControllerAssertResponse = ReconciliationRecordDto;
@@ -6090,7 +6452,7 @@ type ReconciliationControllerPadData = {
6090
6452
  /**
6091
6453
  * Region code for tenant context (decorative for reconciliation)
6092
6454
  */
6093
- region: 'cn' | 'us' | 'de' | 'gb';
6455
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6094
6456
  requestBody: PadReconciliationDto;
6095
6457
  };
6096
6458
  type ReconciliationControllerPadResponse = PadResultDto;
@@ -6102,7 +6464,7 @@ type ReconciliationControllerHistoryData = {
6102
6464
  /**
6103
6465
  * Region code for tenant context (decorative for reconciliation)
6104
6466
  */
6105
- region: 'cn' | 'us' | 'de' | 'gb';
6467
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6106
6468
  };
6107
6469
  type ReconciliationControllerHistoryResponse = Array<ReconciliationRecordDto>;
6108
6470
  type ExportControllerExportBeancountResponse = unknown;
@@ -6114,7 +6476,7 @@ type FileImportControllerImportFileData = {
6114
6476
  /**
6115
6477
  * Region code for tenant context
6116
6478
  */
6117
- region: 'cn' | 'us' | 'de' | 'gb';
6479
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6118
6480
  };
6119
6481
  type FileImportControllerImportFileResponse = ImportResultDto;
6120
6482
  type FileImportControllerIdentifyFileData = {
@@ -6125,7 +6487,7 @@ type FileImportControllerIdentifyFileData = {
6125
6487
  /**
6126
6488
  * Region code for tenant context
6127
6489
  */
6128
- region: 'cn' | 'us' | 'de' | 'gb';
6490
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6129
6491
  };
6130
6492
  type FileImportControllerIdentifyFileResponse = IdentifyResultDto;
6131
6493
  type FileImportControllerImportBeancountData = {
@@ -6136,7 +6498,7 @@ type FileImportControllerImportBeancountData = {
6136
6498
  /**
6137
6499
  * Region code for tenant context
6138
6500
  */
6139
- region: 'cn' | 'us' | 'de' | 'gb';
6501
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6140
6502
  };
6141
6503
  type FileImportControllerImportBeancountResponse = {
6142
6504
  imported?: number;
@@ -6155,7 +6517,7 @@ type ImporterConfigControllerGetConfigData = {
6155
6517
  /**
6156
6518
  * Region code for tenant context
6157
6519
  */
6158
- region: 'cn' | 'us' | 'de' | 'gb';
6520
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6159
6521
  };
6160
6522
  type ImporterConfigControllerGetConfigResponse = ImporterConfigDto;
6161
6523
  type ImporterConfigControllerUpdateConfigData = {
@@ -6166,7 +6528,7 @@ type ImporterConfigControllerUpdateConfigData = {
6166
6528
  /**
6167
6529
  * Region code for tenant context
6168
6530
  */
6169
- region: 'cn' | 'us' | 'de' | 'gb';
6531
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6170
6532
  /**
6171
6533
  * Partial configuration update. Only provided fields will be updated.
6172
6534
  */
@@ -6181,7 +6543,7 @@ type ImporterConfigControllerResetConfigData = {
6181
6543
  /**
6182
6544
  * Region code for tenant context
6183
6545
  */
6184
- region: 'cn' | 'us' | 'de' | 'gb';
6546
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6185
6547
  };
6186
6548
  type ImporterConfigControllerResetConfigResponse = ImporterConfigDto;
6187
6549
  type ProviderSyncControllerSyncData = {
@@ -6192,7 +6554,7 @@ type ProviderSyncControllerSyncData = {
6192
6554
  /**
6193
6555
  * Region code for tenant context
6194
6556
  */
6195
- region: 'cn' | 'us' | 'de' | 'gb';
6557
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6196
6558
  requestBody: ProviderSyncDto;
6197
6559
  };
6198
6560
  type ProviderSyncControllerSyncResponse = ProviderSyncResponseDto;
@@ -6200,7 +6562,7 @@ type ProviderSyncControllerGetSupportedProvidersData = {
6200
6562
  /**
6201
6563
  * Region code for tenant context
6202
6564
  */
6203
- region: 'cn' | 'us' | 'de' | 'gb';
6565
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6204
6566
  };
6205
6567
  type ProviderSyncControllerGetSupportedProvidersResponse = SupportedProvidersResponseDto;
6206
6568
  type ProviderSyncControllerIsProviderSupportedData = {
@@ -6211,14 +6573,14 @@ type ProviderSyncControllerIsProviderSupportedData = {
6211
6573
  /**
6212
6574
  * Region code for tenant context
6213
6575
  */
6214
- region: 'cn' | 'us' | 'de' | 'gb';
6576
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6215
6577
  };
6216
6578
  type ProviderSyncControllerIsProviderSupportedResponse = unknown;
6217
6579
  type ExternalAccountLinkControllerCreateData = {
6218
6580
  /**
6219
6581
  * Region code for tenant context
6220
6582
  */
6221
- region: 'cn' | 'us' | 'de' | 'gb';
6583
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6222
6584
  requestBody: CreateExternalAccountLinkDto;
6223
6585
  };
6224
6586
  type ExternalAccountLinkControllerCreateResponse = ExternalAccountLinkResponseDto;
@@ -6227,7 +6589,7 @@ type ExternalAccountLinkControllerFindAllData = {
6227
6589
  /**
6228
6590
  * Region code for tenant context
6229
6591
  */
6230
- region: 'cn' | 'us' | 'de' | 'gb';
6592
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6231
6593
  };
6232
6594
  type ExternalAccountLinkControllerFindAllResponse = ExternalAccountLinkListResponseDto;
6233
6595
  type ExternalAccountLinkControllerFindOneData = {
@@ -6235,7 +6597,7 @@ type ExternalAccountLinkControllerFindOneData = {
6235
6597
  /**
6236
6598
  * Region code for tenant context
6237
6599
  */
6238
- region: 'cn' | 'us' | 'de' | 'gb';
6600
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6239
6601
  };
6240
6602
  type ExternalAccountLinkControllerFindOneResponse = ExternalAccountLinkResponseDto;
6241
6603
  type ExternalAccountLinkControllerRemoveData = {
@@ -6243,14 +6605,14 @@ type ExternalAccountLinkControllerRemoveData = {
6243
6605
  /**
6244
6606
  * Region code for tenant context
6245
6607
  */
6246
- region: 'cn' | 'us' | 'de' | 'gb';
6608
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6247
6609
  };
6248
6610
  type ExternalAccountLinkControllerRemoveResponse = void;
6249
6611
  type TelemetryControllerReportTelemetryData = {
6250
6612
  /**
6251
6613
  * Region code for tenant context
6252
6614
  */
6253
- region: 'cn' | 'us' | 'de' | 'gb';
6615
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6254
6616
  requestBody: ParserTelemetryReportDto;
6255
6617
  };
6256
6618
  type TelemetryControllerReportTelemetryResponse = unknown;
@@ -6258,7 +6620,7 @@ type TelemetryControllerReportCoverageMissData = {
6258
6620
  /**
6259
6621
  * Region code for tenant context
6260
6622
  */
6261
- region: 'cn' | 'us' | 'de' | 'gb';
6623
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6262
6624
  requestBody: UncoveredFormatMissDto;
6263
6625
  };
6264
6626
  type TelemetryControllerReportCoverageMissResponse = unknown;
@@ -6266,7 +6628,7 @@ type TelemetryControllerGetCoverageMetricsData = {
6266
6628
  /**
6267
6629
  * Region code for tenant context
6268
6630
  */
6269
- region: 'cn' | 'us' | 'de' | 'gb';
6631
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6270
6632
  /**
6271
6633
  * Top-N uncovered formats (default 10)
6272
6634
  */
@@ -6277,7 +6639,7 @@ type NlpControllerProcessNaturalLanguageData = {
6277
6639
  /**
6278
6640
  * Region code for tenant context
6279
6641
  */
6280
- region: 'cn' | 'us' | 'de' | 'gb';
6642
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6281
6643
  /**
6282
6644
  * Natural language transaction input with optional session ID
6283
6645
  */
@@ -6288,7 +6650,7 @@ type NlpControllerClearSessionData = {
6288
6650
  /**
6289
6651
  * Region code for tenant context
6290
6652
  */
6291
- region: 'cn' | 'us' | 'de' | 'gb';
6653
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6292
6654
  /**
6293
6655
  * Specific session ID to clear (defaults to user session)
6294
6656
  */
@@ -6299,7 +6661,7 @@ type NlpControllerGetSessionData = {
6299
6661
  /**
6300
6662
  * Region code for tenant context
6301
6663
  */
6302
- region: 'cn' | 'us' | 'de' | 'gb';
6664
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6303
6665
  /**
6304
6666
  * Specific session ID to get (defaults to user session)
6305
6667
  */
@@ -6311,6 +6673,12 @@ type PlatformControllerCreateData = {
6311
6673
  requestBody: CreatePlatformDto;
6312
6674
  };
6313
6675
  type PlatformControllerCreateResponse = unknown;
6676
+ type PlatformControllerGetPlatformListData = {
6677
+ /**
6678
+ * Region code (ISO 3166-1 alpha-2) that biases within-type-bucket ordering (local-region platforms first). Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
6679
+ */
6680
+ region?: string;
6681
+ };
6314
6682
  type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6315
6683
  type PlatformControllerMatchPlatformsData = {
6316
6684
  /**
@@ -6318,7 +6686,7 @@ type PlatformControllerMatchPlatformsData = {
6318
6686
  */
6319
6687
  q: string;
6320
6688
  /**
6321
- * Region code for category override lookup
6689
+ * Region code (ISO 3166-1 alpha-2) that biases within-tier ordering (local-region platforms first); also the intended categoryOverrides key. Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
6322
6690
  */
6323
6691
  region?: string;
6324
6692
  };
@@ -6346,7 +6714,7 @@ type DashboardControllerGetNetWorthData = {
6346
6714
  /**
6347
6715
  * Region code for tenant context
6348
6716
  */
6349
- region: 'cn' | 'us' | 'de' | 'gb';
6717
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6350
6718
  };
6351
6719
  type DashboardControllerGetNetWorthResponse = NetWorthResponseDto;
6352
6720
  type DashboardControllerGetAccountsData = {
@@ -6365,7 +6733,7 @@ type DashboardControllerGetAccountsData = {
6365
6733
  /**
6366
6734
  * Region code for tenant context
6367
6735
  */
6368
- region: 'cn' | 'us' | 'de' | 'gb';
6736
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6369
6737
  };
6370
6738
  type DashboardControllerGetAccountsResponse = AccountsResponseDto | AssetClassAccountsResponseDto | HoldingAssetClassCrossAccountResponseDto;
6371
6739
  type DashboardControllerGetCashFlowData = {
@@ -6376,7 +6744,7 @@ type DashboardControllerGetCashFlowData = {
6376
6744
  /**
6377
6745
  * Region code for tenant context
6378
6746
  */
6379
- region: 'cn' | 'us' | 'de' | 'gb';
6747
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6380
6748
  };
6381
6749
  type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
6382
6750
  type DashboardControllerGetExpensesData = {
@@ -6395,7 +6763,7 @@ type DashboardControllerGetExpensesData = {
6395
6763
  /**
6396
6764
  * Region code for tenant context
6397
6765
  */
6398
- region: 'cn' | 'us' | 'de' | 'gb';
6766
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6399
6767
  };
6400
6768
  type DashboardControllerGetExpensesResponse = ExpensesByCategoryResponseDto;
6401
6769
  type HoldingPnlControllerGetHoldingPnlData = {
@@ -6414,58 +6782,9 @@ type HoldingPnlControllerGetHoldingPnlData = {
6414
6782
  /**
6415
6783
  * Region code for tenant context
6416
6784
  */
6417
- region: 'cn' | 'us' | 'de' | 'gb';
6785
+ region: 'ad' | 'ae' | 'af' | 'ag' | 'al' | 'am' | 'ao' | 'au' | 'br' | 'ca' | 'cn' | 'de' | 'dz' | 'es' | 'fr' | 'gb' | 'hk' | 'in' | 'it' | 'jp' | 'kr' | 'nl' | 'sg' | 'tw' | 'us';
6418
6786
  };
6419
6787
  type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
6420
- type ReportingControllerGetPortfolioTrendsData = {
6421
- /**
6422
- * Data granularity
6423
- */
6424
- granularity?: 'day' | 'week' | 'month';
6425
- /**
6426
- * Time period
6427
- */
6428
- period?: '1m' | '3m' | '6m' | '1y';
6429
- /**
6430
- * Region code for tenant context
6431
- */
6432
- region: 'cn' | 'us' | 'de' | 'gb';
6433
- };
6434
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6435
- type ReportingControllerGetCashFlowTrendsData = {
6436
- /**
6437
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
6438
- */
6439
- granularity?: 'day' | 'week' | 'month';
6440
- /**
6441
- * Time period
6442
- */
6443
- period?: '1m' | '3m' | '6m' | '1y';
6444
- /**
6445
- * Region code for tenant context
6446
- */
6447
- region: 'cn' | 'us' | 'de' | 'gb';
6448
- };
6449
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6450
- type ReportingControllerGenerateSnapshotData = {
6451
- /**
6452
- * Region code for tenant context
6453
- */
6454
- region: 'cn' | 'us' | 'de' | 'gb';
6455
- /**
6456
- * Optional date (defaults to today)
6457
- */
6458
- requestBody: GenerateSnapshotBody;
6459
- };
6460
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6461
- type ReportingControllerBackfillSnapshotsData = {
6462
- /**
6463
- * Region code for tenant context
6464
- */
6465
- region: 'cn' | 'us' | 'de' | 'gb';
6466
- requestBody: BackfillSnapshotsBody;
6467
- };
6468
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6469
6788
  type ApiKeysControllerCreateApiKeyResponse = unknown;
6470
6789
  type AuthControllerAccessTokenLoginData = {
6471
6790
  requestBody: AnonymousLoginDto;
@@ -6497,6 +6816,29 @@ type HealthControllerResetCircuitBreakerData = {
6497
6816
  type HealthControllerResetCircuitBreakerResponse = unknown;
6498
6817
  type HealthControllerGetMetricsResponse = unknown;
6499
6818
  type InfoControllerGetInfoResponse = unknown;
6819
+ type SymbolControllerSearchData = {
6820
+ /**
6821
+ * Filter by OpenBB asset_type (e.g. stock, etf)
6822
+ */
6823
+ assetType?: string;
6824
+ /**
6825
+ * Filter by exchange code (e.g. US, HK, SS, SZ)
6826
+ */
6827
+ exchange?: string;
6828
+ /**
6829
+ * Maximum number of results (clamped 1..50)
6830
+ */
6831
+ limit?: number;
6832
+ /**
6833
+ * Search term — matched against symbol and instrument name. Empty string returns [].
6834
+ */
6835
+ q: string;
6836
+ };
6837
+ type SymbolControllerSearchResponse = Array<SymbolSearchResultDto>;
6838
+ type SymbolControllerGetQuoteData = {
6839
+ symbol: string;
6840
+ };
6841
+ type SymbolControllerGetQuoteResponse = SymbolQuoteDto;
6500
6842
  type $OpenApiTs = {
6501
6843
  '/api/v1/{region}/bean/accounts': {
6502
6844
  post: {
@@ -6561,7 +6903,7 @@ type $OpenApiTs = {
6561
6903
  */
6562
6904
  404: unknown;
6563
6905
  /**
6564
- * Account has transactions and cannot be deleted
6906
+ * Account has active transactions and cannot be deleted
6565
6907
  */
6566
6908
  409: unknown;
6567
6909
  };
@@ -7560,403 +7902,486 @@ type $OpenApiTs = {
7560
7902
  req: ForecastControllerGetForecastData;
7561
7903
  res: {
7562
7904
  /**
7563
- * Forecast retrieved successfully
7905
+ * Forecast retrieved successfully
7906
+ */
7907
+ 200: ForecastResponseDto;
7908
+ };
7909
+ };
7910
+ };
7911
+ '/api/v1/{region}/reporting/portfolio/trends': {
7912
+ get: {
7913
+ req: ReportingControllerGetPortfolioTrendsData;
7914
+ res: {
7915
+ /**
7916
+ * Trends retrieved successfully
7917
+ */
7918
+ 200: PortfolioTrendsResponseDto;
7919
+ /**
7920
+ * User not authenticated
7921
+ */
7922
+ 401: unknown;
7923
+ };
7924
+ };
7925
+ };
7926
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7927
+ get: {
7928
+ req: ReportingControllerGetCashFlowTrendsData;
7929
+ res: {
7930
+ /**
7931
+ * Cash-flow trends retrieved successfully
7932
+ */
7933
+ 200: CashFlowTrendsResponseDto;
7934
+ /**
7935
+ * User not authenticated
7936
+ */
7937
+ 401: unknown;
7938
+ };
7939
+ };
7940
+ };
7941
+ '/api/v1/{region}/reporting/snapshots/generate': {
7942
+ post: {
7943
+ req: ReportingControllerGenerateSnapshotData;
7944
+ res: {
7945
+ /**
7946
+ * Snapshot generated successfully
7947
+ */
7948
+ 200: GenerateSnapshotResponse;
7949
+ /**
7950
+ * Invalid date format
7564
7951
  */
7565
- 200: ForecastResponseDto;
7952
+ 400: unknown;
7953
+ /**
7954
+ * User not authenticated
7955
+ */
7956
+ 401: unknown;
7566
7957
  };
7567
7958
  };
7568
7959
  };
7569
- '/api/v1/{region}/bean/transaction-rules': {
7960
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7570
7961
  post: {
7571
- req: TransactionRuleControllerCreateData;
7962
+ req: ReportingControllerBackfillSnapshotsData;
7572
7963
  res: {
7573
7964
  /**
7574
- * Rule updated successfully (upsert mode)
7965
+ * Backfill completed successfully
7575
7966
  */
7576
- 200: TransactionRuleResponseDto;
7967
+ 200: BackfillSnapshotsResponse;
7577
7968
  /**
7578
- * Validation failed
7969
+ * Invalid date format or range
7579
7970
  */
7580
- 400: ApiProblemResponseDto;
7971
+ 400: unknown;
7581
7972
  /**
7582
- * Unauthorized
7973
+ * User not authenticated
7583
7974
  */
7584
- 401: ApiProblemResponseDto;
7975
+ 401: unknown;
7585
7976
  /**
7586
- * Resource conflict - another process is updating this rule
7977
+ * Backfill already in progress for this user
7587
7978
  */
7588
- 409: ApiProblemResponseDto;
7979
+ 409: unknown;
7589
7980
  };
7590
7981
  };
7591
- get: {
7592
- req: TransactionRuleControllerListData;
7982
+ };
7983
+ '/api/v1/users': {
7984
+ delete: {
7985
+ req: UserControllerDeleteOwnUserData;
7593
7986
  res: {
7594
7987
  /**
7595
- * List of rules
7988
+ * User deleted successfully
7596
7989
  */
7597
- 200: TransactionRuleListResponseDto;
7990
+ 204: void;
7598
7991
  /**
7599
- * Unauthorized
7992
+ * Invalid access token
7600
7993
  */
7601
- 401: ApiProblemResponseDto;
7994
+ 403: unknown;
7602
7995
  };
7603
7996
  };
7604
- };
7605
- '/api/v1/{region}/bean/transaction-rules/validate': {
7606
- post: {
7607
- req: TransactionRuleControllerValidateData;
7997
+ get: {
7998
+ req: UserControllerGetUserData;
7608
7999
  res: {
7609
8000
  /**
7610
- * Validation result
7611
- */
7612
- 200: ValidateRuleResponseDto;
7613
- /**
7614
- * Validation failed
7615
- */
7616
- 400: ApiProblemResponseDto;
7617
- /**
7618
- * Unauthorized
8001
+ * User retrieved successfully
7619
8002
  */
7620
- 401: ApiProblemResponseDto;
8003
+ 200: UserResponseDto;
7621
8004
  };
7622
8005
  };
7623
- };
7624
- '/api/v1/{region}/bean/transaction-rules/bulk': {
7625
8006
  post: {
7626
- req: TransactionRuleControllerBulkCreateData;
8007
+ req: UserControllerSignupUserData;
7627
8008
  res: {
7628
8009
  /**
7629
- * Bulk create completed
8010
+ * User created successfully
7630
8011
  */
7631
- 201: BulkCreateRulesResponseDto;
8012
+ 201: SignupResponseDto;
7632
8013
  /**
7633
- * Invalid bulk create data
8014
+ * Invalid Turnstile token (when Turnstile is enabled)
7634
8015
  */
7635
- 400: ApiProblemResponseDto;
8016
+ 400: unknown;
7636
8017
  /**
7637
- * Unauthorized
8018
+ * User signup is disabled
7638
8019
  */
7639
- 401: ApiProblemResponseDto;
8020
+ 403: unknown;
7640
8021
  };
7641
8022
  };
7642
8023
  };
7643
- '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7644
- get: {
7645
- req: TransactionRuleControllerExportData;
8024
+ '/api/v1/users/{id}': {
8025
+ delete: {
8026
+ req: UserControllerDeleteUserData;
7646
8027
  res: {
7647
8028
  /**
7648
- * Exported rules
7649
- */
7650
- 200: ExportRulesResponseDto;
7651
- /**
7652
- * Unsupported format
8029
+ * User deleted successfully
7653
8030
  */
7654
- 400: ApiProblemResponseDto;
8031
+ 204: void;
7655
8032
  /**
7656
- * Unauthorized
8033
+ * Cannot delete own account or insufficient permissions
7657
8034
  */
7658
- 401: ApiProblemResponseDto;
8035
+ 403: unknown;
7659
8036
  };
7660
8037
  };
7661
8038
  };
7662
- '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
8039
+ '/api/v1/users/{id}/info': {
7663
8040
  get: {
7664
- req: TransactionRuleControllerGetStatisticsData;
8041
+ req: UserControllerGetUserInfoData;
7665
8042
  res: {
7666
8043
  /**
7667
- * Rule statistics
8044
+ * User info retrieved successfully
7668
8045
  */
7669
- 200: RuleStatisticsResponseDto;
8046
+ 200: unknown;
7670
8047
  /**
7671
- * Unauthorized
8048
+ * Cannot access other user info without admin permission
7672
8049
  */
7673
- 401: ApiProblemResponseDto;
8050
+ 403: unknown;
7674
8051
  };
7675
8052
  };
7676
8053
  };
7677
- '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7678
- get: {
7679
- req: TransactionRuleControllerGetDetailData;
8054
+ '/api/v1/users/setting': {
8055
+ put: {
8056
+ req: UserControllerUpdateUserSettingData;
7680
8057
  res: {
7681
8058
  /**
7682
- * Rule details
7683
- */
7684
- 200: TransactionRuleResponseDto;
7685
- /**
7686
- * Unauthorized
8059
+ * Settings updated successfully
7687
8060
  */
7688
- 401: ApiProblemResponseDto;
8061
+ 200: unknown;
7689
8062
  /**
7690
- * Forbidden - not owner of rule
8063
+ * Insufficient permissions
7691
8064
  */
7692
- 403: ApiProblemResponseDto;
8065
+ 403: unknown;
8066
+ };
8067
+ };
8068
+ };
8069
+ '/api/v1/users/settings-by-page': {
8070
+ get: {
8071
+ req: UserControllerGetAllUserSettingsByPageData;
8072
+ res: {
7693
8073
  /**
7694
- * Rule not found
8074
+ * Settings list retrieved successfully
7695
8075
  */
7696
- 404: ApiProblemResponseDto;
8076
+ 200: unknown;
7697
8077
  };
7698
8078
  };
7699
- put: {
7700
- req: TransactionRuleControllerUpdateData;
8079
+ };
8080
+ '/api/v1/users/asset-liability-summary': {
8081
+ get: {
7701
8082
  res: {
7702
8083
  /**
7703
- * Rule updated successfully
8084
+ * Summary retrieved successfully
7704
8085
  */
7705
- 200: TransactionRuleResponseDto;
8086
+ 200: unknown;
8087
+ };
8088
+ };
8089
+ };
8090
+ '/api/v1/admin/properties': {
8091
+ get: {
8092
+ res: {
7706
8093
  /**
7707
- * Validation failed
8094
+ * Properties retrieved successfully
7708
8095
  */
7709
- 400: ApiProblemResponseDto;
8096
+ 200: unknown;
7710
8097
  /**
7711
8098
  * Unauthorized
7712
8099
  */
7713
- 401: ApiProblemResponseDto;
7714
- /**
7715
- * Forbidden - not owner of rule
7716
- */
7717
- 403: ApiProblemResponseDto;
7718
- /**
7719
- * Rule not found
7720
- */
7721
- 404: ApiProblemResponseDto;
8100
+ 401: unknown;
7722
8101
  /**
7723
- * Resource conflict - rule is being modified by another process
8102
+ * Forbidden - insufficient permissions
7724
8103
  */
7725
- 409: ApiProblemResponseDto;
8104
+ 403: unknown;
7726
8105
  };
7727
8106
  };
7728
- delete: {
7729
- req: TransactionRuleControllerDeleteData;
8107
+ };
8108
+ '/api/v1/admin/properties/{key}': {
8109
+ get: {
8110
+ req: PropertyControllerGetByKeyData;
7730
8111
  res: {
7731
8112
  /**
7732
- * Rule deleted successfully
8113
+ * Property retrieved successfully
7733
8114
  */
7734
- 204: void;
8115
+ 200: unknown;
7735
8116
  /**
7736
8117
  * Unauthorized
7737
8118
  */
7738
- 401: ApiProblemResponseDto;
7739
- /**
7740
- * Forbidden - not owner of rule
7741
- */
7742
- 403: ApiProblemResponseDto;
8119
+ 401: unknown;
7743
8120
  /**
7744
- * Rule not found
8121
+ * Forbidden - insufficient permissions
7745
8122
  */
7746
- 404: ApiProblemResponseDto;
8123
+ 403: unknown;
7747
8124
  /**
7748
- * Resource conflict - rule is being modified by another process
8125
+ * Property not found
7749
8126
  */
7750
- 409: ApiProblemResponseDto;
8127
+ 404: unknown;
7751
8128
  };
7752
8129
  };
7753
- };
7754
- '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
7755
- post: {
7756
- req: TransactionRuleControllerTestData;
8130
+ put: {
8131
+ req: PropertyControllerUpdateData;
7757
8132
  res: {
7758
8133
  /**
7759
- * Test result
8134
+ * Property updated successfully
7760
8135
  */
7761
- 200: TestRuleResponseDto;
8136
+ 200: unknown;
7762
8137
  /**
7763
8138
  * Unauthorized
7764
8139
  */
7765
- 401: ApiProblemResponseDto;
7766
- /**
7767
- * Forbidden - not owner of rule
7768
- */
7769
- 403: ApiProblemResponseDto;
8140
+ 401: unknown;
7770
8141
  /**
7771
- * Rule not found
8142
+ * Forbidden - insufficient permissions
7772
8143
  */
7773
- 404: ApiProblemResponseDto;
8144
+ 403: unknown;
7774
8145
  };
7775
8146
  };
7776
- };
7777
- '/api/v1/users': {
7778
8147
  delete: {
7779
- req: UserControllerDeleteOwnUserData;
8148
+ req: PropertyControllerDeleteData;
7780
8149
  res: {
7781
8150
  /**
7782
- * User deleted successfully
8151
+ * Property deleted successfully
7783
8152
  */
7784
8153
  204: void;
7785
8154
  /**
7786
- * Invalid access token
8155
+ * Unauthorized
8156
+ */
8157
+ 401: unknown;
8158
+ /**
8159
+ * Forbidden - insufficient permissions
7787
8160
  */
7788
8161
  403: unknown;
7789
- };
7790
- };
7791
- get: {
7792
- req: UserControllerGetUserData;
7793
- res: {
7794
8162
  /**
7795
- * User retrieved successfully
8163
+ * Property not found
7796
8164
  */
7797
- 200: unknown;
8165
+ 404: unknown;
7798
8166
  };
7799
8167
  };
8168
+ };
8169
+ '/api/v1/{region}/bean/transaction-rules': {
7800
8170
  post: {
7801
- req: UserControllerSignupUserData;
8171
+ req: TransactionRuleControllerCreateData;
7802
8172
  res: {
7803
8173
  /**
7804
- * User created successfully
8174
+ * Rule updated successfully (upsert mode)
7805
8175
  */
7806
- 201: SignupResponseDto;
8176
+ 200: TransactionRuleResponseDto;
7807
8177
  /**
7808
- * Invalid Turnstile token (when Turnstile is enabled)
8178
+ * Validation failed
7809
8179
  */
7810
- 400: unknown;
8180
+ 400: ApiProblemResponseDto;
7811
8181
  /**
7812
- * User signup is disabled
8182
+ * Unauthorized
7813
8183
  */
7814
- 403: unknown;
8184
+ 401: ApiProblemResponseDto;
8185
+ /**
8186
+ * Resource conflict - another process is updating this rule
8187
+ */
8188
+ 409: ApiProblemResponseDto;
7815
8189
  };
7816
8190
  };
7817
- };
7818
- '/api/v1/users/{id}': {
7819
- delete: {
7820
- req: UserControllerDeleteUserData;
8191
+ get: {
8192
+ req: TransactionRuleControllerListData;
7821
8193
  res: {
7822
8194
  /**
7823
- * User deleted successfully
8195
+ * List of rules
7824
8196
  */
7825
- 204: void;
8197
+ 200: TransactionRuleListResponseDto;
7826
8198
  /**
7827
- * Cannot delete own account or insufficient permissions
8199
+ * Unauthorized
7828
8200
  */
7829
- 403: unknown;
8201
+ 401: ApiProblemResponseDto;
7830
8202
  };
7831
8203
  };
7832
8204
  };
7833
- '/api/v1/users/{id}/info': {
7834
- get: {
7835
- req: UserControllerGetUserInfoData;
8205
+ '/api/v1/{region}/bean/transaction-rules/validate': {
8206
+ post: {
8207
+ req: TransactionRuleControllerValidateData;
7836
8208
  res: {
7837
8209
  /**
7838
- * User info retrieved successfully
8210
+ * Validation result
7839
8211
  */
7840
- 200: unknown;
8212
+ 200: ValidateRuleResponseDto;
7841
8213
  /**
7842
- * Cannot access other user info without admin permission
8214
+ * Validation failed
7843
8215
  */
7844
- 403: unknown;
8216
+ 400: ApiProblemResponseDto;
8217
+ /**
8218
+ * Unauthorized
8219
+ */
8220
+ 401: ApiProblemResponseDto;
7845
8221
  };
7846
8222
  };
7847
8223
  };
7848
- '/api/v1/users/setting': {
7849
- put: {
7850
- req: UserControllerUpdateUserSettingData;
8224
+ '/api/v1/{region}/bean/transaction-rules/bulk': {
8225
+ post: {
8226
+ req: TransactionRuleControllerBulkCreateData;
7851
8227
  res: {
7852
8228
  /**
7853
- * Settings updated successfully
8229
+ * Bulk create completed
7854
8230
  */
7855
- 200: unknown;
8231
+ 201: BulkCreateRulesResponseDto;
7856
8232
  /**
7857
- * Insufficient permissions
8233
+ * Invalid bulk create data
7858
8234
  */
7859
- 403: unknown;
8235
+ 400: ApiProblemResponseDto;
8236
+ /**
8237
+ * Unauthorized
8238
+ */
8239
+ 401: ApiProblemResponseDto;
7860
8240
  };
7861
8241
  };
7862
8242
  };
7863
- '/api/v1/users/settings-by-page': {
8243
+ '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7864
8244
  get: {
7865
- req: UserControllerGetAllUserSettingsByPageData;
8245
+ req: TransactionRuleControllerExportData;
7866
8246
  res: {
7867
8247
  /**
7868
- * Settings list retrieved successfully
8248
+ * Exported rules
7869
8249
  */
7870
- 200: unknown;
8250
+ 200: ExportRulesResponseDto;
8251
+ /**
8252
+ * Unsupported format
8253
+ */
8254
+ 400: ApiProblemResponseDto;
8255
+ /**
8256
+ * Unauthorized
8257
+ */
8258
+ 401: ApiProblemResponseDto;
7871
8259
  };
7872
8260
  };
7873
8261
  };
7874
- '/api/v1/users/asset-liability-summary': {
8262
+ '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7875
8263
  get: {
8264
+ req: TransactionRuleControllerGetStatisticsData;
7876
8265
  res: {
7877
8266
  /**
7878
- * Summary retrieved successfully
8267
+ * Rule statistics
7879
8268
  */
7880
- 200: unknown;
8269
+ 200: RuleStatisticsResponseDto;
8270
+ /**
8271
+ * Unauthorized
8272
+ */
8273
+ 401: ApiProblemResponseDto;
7881
8274
  };
7882
8275
  };
7883
8276
  };
7884
- '/api/v1/admin/properties': {
8277
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7885
8278
  get: {
8279
+ req: TransactionRuleControllerGetDetailData;
7886
8280
  res: {
7887
8281
  /**
7888
- * Properties retrieved successfully
8282
+ * Rule details
7889
8283
  */
7890
- 200: unknown;
8284
+ 200: TransactionRuleResponseDto;
7891
8285
  /**
7892
8286
  * Unauthorized
7893
8287
  */
7894
- 401: unknown;
8288
+ 401: ApiProblemResponseDto;
7895
8289
  /**
7896
- * Forbidden - insufficient permissions
8290
+ * Forbidden - not owner of rule
7897
8291
  */
7898
- 403: unknown;
8292
+ 403: ApiProblemResponseDto;
8293
+ /**
8294
+ * Rule not found
8295
+ */
8296
+ 404: ApiProblemResponseDto;
7899
8297
  };
7900
8298
  };
7901
- };
7902
- '/api/v1/admin/properties/{key}': {
7903
- get: {
7904
- req: PropertyControllerGetByKeyData;
8299
+ put: {
8300
+ req: TransactionRuleControllerUpdateData;
7905
8301
  res: {
7906
8302
  /**
7907
- * Property retrieved successfully
8303
+ * Rule updated successfully
7908
8304
  */
7909
- 200: unknown;
8305
+ 200: TransactionRuleResponseDto;
8306
+ /**
8307
+ * Validation failed
8308
+ */
8309
+ 400: ApiProblemResponseDto;
7910
8310
  /**
7911
8311
  * Unauthorized
7912
8312
  */
7913
- 401: unknown;
8313
+ 401: ApiProblemResponseDto;
7914
8314
  /**
7915
- * Forbidden - insufficient permissions
8315
+ * Forbidden - not owner of rule
7916
8316
  */
7917
- 403: unknown;
8317
+ 403: ApiProblemResponseDto;
7918
8318
  /**
7919
- * Property not found
8319
+ * Rule not found
7920
8320
  */
7921
- 404: unknown;
8321
+ 404: ApiProblemResponseDto;
8322
+ /**
8323
+ * Resource conflict - rule is being modified by another process
8324
+ */
8325
+ 409: ApiProblemResponseDto;
7922
8326
  };
7923
8327
  };
7924
- put: {
7925
- req: PropertyControllerUpdateData;
8328
+ delete: {
8329
+ req: TransactionRuleControllerDeleteData;
7926
8330
  res: {
7927
8331
  /**
7928
- * Property updated successfully
8332
+ * Rule deleted successfully
7929
8333
  */
7930
- 200: unknown;
8334
+ 204: void;
7931
8335
  /**
7932
8336
  * Unauthorized
7933
8337
  */
7934
- 401: unknown;
8338
+ 401: ApiProblemResponseDto;
7935
8339
  /**
7936
- * Forbidden - insufficient permissions
8340
+ * Forbidden - not owner of rule
7937
8341
  */
7938
- 403: unknown;
8342
+ 403: ApiProblemResponseDto;
8343
+ /**
8344
+ * Rule not found
8345
+ */
8346
+ 404: ApiProblemResponseDto;
8347
+ /**
8348
+ * Resource conflict - rule is being modified by another process
8349
+ */
8350
+ 409: ApiProblemResponseDto;
7939
8351
  };
7940
8352
  };
7941
- delete: {
7942
- req: PropertyControllerDeleteData;
8353
+ };
8354
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
8355
+ post: {
8356
+ req: TransactionRuleControllerTestData;
7943
8357
  res: {
7944
8358
  /**
7945
- * Property deleted successfully
8359
+ * Test result
7946
8360
  */
7947
- 204: void;
8361
+ 200: TestRuleResponseDto;
7948
8362
  /**
7949
8363
  * Unauthorized
7950
8364
  */
7951
- 401: unknown;
8365
+ 401: ApiProblemResponseDto;
7952
8366
  /**
7953
- * Forbidden - insufficient permissions
8367
+ * Forbidden - not owner of rule
7954
8368
  */
7955
- 403: unknown;
8369
+ 403: ApiProblemResponseDto;
7956
8370
  /**
7957
- * Property not found
8371
+ * Rule not found
7958
8372
  */
7959
- 404: unknown;
8373
+ 404: ApiProblemResponseDto;
8374
+ };
8375
+ };
8376
+ };
8377
+ '/api/v1/{region}/bean/categories': {
8378
+ get: {
8379
+ req: CategoryCatalogControllerListData;
8380
+ res: {
8381
+ /**
8382
+ * Category catalog retrieved successfully
8383
+ */
8384
+ 200: CategoryCatalogListResponseDto;
7960
8385
  };
7961
8386
  };
7962
8387
  };
@@ -8499,6 +8924,7 @@ type $OpenApiTs = {
8499
8924
  };
8500
8925
  '/api/v1/bean/platforms/list': {
8501
8926
  get: {
8927
+ req: PlatformControllerGetPlatformListData;
8502
8928
  res: {
8503
8929
  /**
8504
8930
  * List of platforms with user binding status
@@ -8633,78 +9059,6 @@ type $OpenApiTs = {
8633
9059
  };
8634
9060
  };
8635
9061
  };
8636
- '/api/v1/{region}/reporting/portfolio/trends': {
8637
- get: {
8638
- req: ReportingControllerGetPortfolioTrendsData;
8639
- res: {
8640
- /**
8641
- * Trends retrieved successfully
8642
- */
8643
- 200: PortfolioTrendsResponseDto;
8644
- /**
8645
- * User not authenticated
8646
- */
8647
- 401: unknown;
8648
- };
8649
- };
8650
- };
8651
- '/api/v1/{region}/reporting/cash-flow/trends': {
8652
- get: {
8653
- req: ReportingControllerGetCashFlowTrendsData;
8654
- res: {
8655
- /**
8656
- * Cash-flow trends retrieved successfully
8657
- */
8658
- 200: CashFlowTrendsResponseDto;
8659
- /**
8660
- * User not authenticated
8661
- */
8662
- 401: unknown;
8663
- };
8664
- };
8665
- };
8666
- '/api/v1/{region}/reporting/snapshots/generate': {
8667
- post: {
8668
- req: ReportingControllerGenerateSnapshotData;
8669
- res: {
8670
- /**
8671
- * Snapshot generated successfully
8672
- */
8673
- 200: GenerateSnapshotResponse;
8674
- /**
8675
- * Invalid date format
8676
- */
8677
- 400: unknown;
8678
- /**
8679
- * User not authenticated
8680
- */
8681
- 401: unknown;
8682
- };
8683
- };
8684
- };
8685
- '/api/v1/{region}/reporting/snapshots/backfill': {
8686
- post: {
8687
- req: ReportingControllerBackfillSnapshotsData;
8688
- res: {
8689
- /**
8690
- * Backfill completed successfully
8691
- */
8692
- 200: BackfillSnapshotsResponse;
8693
- /**
8694
- * Invalid date format or range
8695
- */
8696
- 400: unknown;
8697
- /**
8698
- * User not authenticated
8699
- */
8700
- 401: unknown;
8701
- /**
8702
- * Backfill already in progress for this user
8703
- */
8704
- 409: unknown;
8705
- };
8706
- };
8707
- };
8708
9062
  '/api/v1/auth/api-keys': {
8709
9063
  post: {
8710
9064
  res: {
@@ -8873,6 +9227,32 @@ type $OpenApiTs = {
8873
9227
  };
8874
9228
  };
8875
9229
  };
9230
+ '/api/v1/market/symbols/search': {
9231
+ get: {
9232
+ req: SymbolControllerSearchData;
9233
+ res: {
9234
+ /**
9235
+ * Ranked search results
9236
+ */
9237
+ 200: Array<SymbolSearchResultDto>;
9238
+ };
9239
+ };
9240
+ };
9241
+ '/api/v1/market/symbols/{symbol}/quote': {
9242
+ get: {
9243
+ req: SymbolControllerGetQuoteData;
9244
+ res: {
9245
+ /**
9246
+ * Symbol quote
9247
+ */
9248
+ 200: SymbolQuoteDto;
9249
+ /**
9250
+ * Symbol not found in the openbb catalog
9251
+ */
9252
+ 404: unknown;
9253
+ };
9254
+ };
9255
+ };
8876
9256
  };
8877
9257
 
8878
9258
  declare class BeanAccountsService {
@@ -8924,7 +9304,7 @@ declare class BeanAccountsService {
8924
9304
  static accountControllerUpdate(data: AccountControllerUpdateData): CancelablePromise<AccountControllerUpdateResponse>;
8925
9305
  /**
8926
9306
  * Delete account
8927
- * Deletes an account (only if no transactions)
9307
+ * Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
8928
9308
  * @param data The data for the request.
8929
9309
  * @param data.id Account UUID
8930
9310
  * @param data.region Region code for tenant context
@@ -9296,4 +9676,4 @@ type OpenAPIConfig = {
9296
9676
  };
9297
9677
  declare const OpenAPI: OpenAPIConfig;
9298
9678
 
9299
- export { type $OpenApiTs, type AccountControllerAddOpeningBalanceData, type AccountControllerAddOpeningBalanceResponse, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type AnonymousLoginResponseDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryGroupDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PlatformListItemDto, type PlatformMatchResponseDto, type PlatformMatchResultDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SignupResponseDto, type SupportedProvidersResponseDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type provider, type role, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedAction, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };
9679
+ export { type $OpenApiTs, type AccountControllerAddOpeningBalanceData, type AccountControllerAddOpeningBalanceResponse, type AccountControllerCloseData, type AccountControllerCloseResponse, type AccountControllerCreateData, type AccountControllerCreateResponse, type AccountControllerDeleteData, type AccountControllerDeleteResponse, type AccountControllerFindAllData, type AccountControllerFindAllResponse, type AccountControllerFindOneData, type AccountControllerFindOneResponse, type AccountControllerReopenData, type AccountControllerReopenResponse, type AccountControllerUpdateData, type AccountControllerUpdateResponse, type AccountExchangeRateWarningDto, type AccountItemDto, type AccountItemWithAssetClassDto, type AccountListResponseDto, type AccountResponseDto, type AccountStandardListResponseDto, type AccountStandardResponseDto, type AccountStandardsControllerGetRegionsData, type AccountStandardsControllerGetRegionsResponse, type AccountStandardsControllerGetTemplateMetadataData, type AccountStandardsControllerGetTemplateMetadataResponse, type AccountStandardsControllerGetTemplatesData, type AccountStandardsControllerGetTemplatesResponse, type AccountsResponseDto, type AccountsSummaryDto, type ActualBalanceDto, type AmountDto, type AmountRangeDto, type AnonymousLoginDto, type AnonymousLoginResponseDto, type ApiKeysControllerCreateApiKeyResponse, type ApiProblemResponseDto, type AssertReconciliationDto, type AssetClassAccountsResponseDto, type AssetClassGroupDto, type AssetClassSummaryDto, type AuthControllerAccessTokenLoginData, type AuthControllerAccessTokenLoginResponse, type BackfillSnapshotsBody, type BackfillSnapshotsResponse, type BalanceByCurrencyDto, type BalanceControllerGetBalanceData, type BalanceControllerGetBalanceResponse, type BalanceControllerGetMultiCurrencyBalanceData, type BalanceControllerGetMultiCurrencyBalanceResponse, type BalanceResponseDto, type BatchCreateTransactionDto, type BatchResolveDto, type BatchResolveResultDto, type BatchTransactionErrorDto, type BatchTransactionResponseDto, BeanAccountsService, BeanBalancesService, BeanCommoditiesService, BeanTransactionsService, type BulkCreateRulesDto, type BulkCreateRulesResponseDto, type CacheControllerFlushCacheResponse, type CashFlowByCurrencyDto, type CashFlowPointDto, type CashFlowResponseDto, type CashFlowTrendSummaryDto, type CashFlowTrendsResponseDto, type CategoryCatalogControllerListData, type CategoryCatalogControllerListResponse, type CategoryCatalogEntryDto, type CategoryCatalogListResponseDto, type CategoryGroupDto, type ClientParsedDataDto, type CloseAccountDto, type CommodityControllerBulkCreateData, type CommodityControllerBulkCreateResponse, type CommodityControllerCreateData, type CommodityControllerCreateResponse, type CommodityControllerDeleteData, type CommodityControllerDeleteResponse, type CommodityControllerFindAllData, type CommodityControllerFindAllResponse, type CommodityControllerFindOneData, type CommodityControllerFindOneResponse, type CommodityControllerGetOrCreateData, type CommodityControllerGetOrCreateResponse, type CommodityControllerUpdateData, type CommodityControllerUpdateResponse, type CommodityListResponseDto, type CommodityResponseDto, type ComputeReconciliationDto, type ConfirmMatchDto, type ConvertedCashFlowDto, type ConvertedNetWorthDto, type CorrectTransactionDto, type CostDetailDto, type CostSpecDto, type CreateAccountDto, type CreateBeanEventDto, type CreateBeanPriceDto, type CreateCommodityDto, type CreateExternalAccountLinkDto, type CreateOpeningBalanceDto, type CreatePayeeDto, type CreatePayeeProfileDto, type CreatePlatformDto, type CreatePostingDto, type CreateRecurringRuleDto, type CreateRuleFromTransactionDto, type CreateTransactionDto, type CreateTransactionRuleDto, type CurrencyBalanceDto, type CurrentPriceDto, type DashboardControllerGetAccountsData, type DashboardControllerGetAccountsResponse, type DashboardControllerGetCashFlowData, type DashboardControllerGetCashFlowResponse, type DashboardControllerGetExpensesData, type DashboardControllerGetExpensesResponse, type DashboardControllerGetNetWorthData, type DashboardControllerGetNetWorthResponse, type DecisionOptionDto, type DeleteOwnUserDto, type EnterNowDto, type EventControllerCreateData, type EventControllerCreateResponse, type EventControllerDeleteData, type EventControllerDeleteResponse, type EventControllerFindAllData, type EventControllerFindAllResponse, type EventControllerFindOneData, type EventControllerFindOneResponse, type EventControllerGetSliceData, type EventControllerGetSliceResponse, type EventControllerUpdateData, type EventControllerUpdateResponse, type EventListResponseDto, type EventResponseDto, type ExchangeRateControllerGetExchangeRateData, type ExchangeRateControllerGetExchangeRateResponse, type ExchangeRateWarningDto, type ExpectedTransactionControllerConfirmMatchData, type ExpectedTransactionControllerConfirmMatchResponse, type ExpectedTransactionControllerEnterNowData, type ExpectedTransactionControllerEnterNowResponse, type ExpectedTransactionControllerFindAllData, type ExpectedTransactionControllerFindAllResponse, type ExpectedTransactionControllerFindOneData, type ExpectedTransactionControllerFindOneResponse, type ExpectedTransactionControllerFindOverdueData, type ExpectedTransactionControllerFindOverdueResponse, type ExpectedTransactionControllerSkipData, type ExpectedTransactionControllerSkipResponse, type ExpectedTransactionControllerUndoSkipData, type ExpectedTransactionControllerUndoSkipResponse, type ExpectedTransactionControllerUnmatchData, type ExpectedTransactionControllerUnmatchResponse, type ExpectedTransactionListResponseDto, type ExpectedTransactionResponseDto, type ExpectedTransactionRuleDto, type ExpensesByCategoryResponseDto, type ExpensesByCategorySummaryDto, type ExportControllerExportBeancountResponse, type ExportRulesResponseDto, type ExternalAccountLinkControllerCreateData, type ExternalAccountLinkControllerCreateResponse, type ExternalAccountLinkControllerFindAllData, type ExternalAccountLinkControllerFindAllResponse, type ExternalAccountLinkControllerFindOneData, type ExternalAccountLinkControllerFindOneResponse, type ExternalAccountLinkControllerRemoveData, type ExternalAccountLinkControllerRemoveResponse, type ExternalAccountLinkListResponseDto, type ExternalAccountLinkResponseDto, type FileImportControllerIdentifyFileData, type FileImportControllerIdentifyFileResponse, type FileImportControllerImportBeancountData, type FileImportControllerImportBeancountResponse, type FileImportControllerImportFileData, type FileImportControllerImportFileResponse, type FileImportDto, type ForecastControllerGetForecastData, type ForecastControllerGetForecastResponse, type ForecastItemDto, type ForecastResponseDto, type FxRateDto, type GenerateSnapshotBody, type GenerateSnapshotResponse, type HealthControllerCheckDatabaseResponse, type HealthControllerCheckOpenBbResponse, type HealthControllerCheckRedisResponse, type HealthControllerGetCircuitBreakersHealthResponse, type HealthControllerGetHealthResponse, type HealthControllerGetMetricsResponse, type HealthControllerResetCircuitBreakerData, type HealthControllerResetCircuitBreakerResponse, HealthService, type HoldingAssetClassAccountSliceDto, type HoldingAssetClassCrossAccountResponseDto, type HoldingPnlControllerGetHoldingPnlData, type HoldingPnlControllerGetHoldingPnlResponse, type HoldingPnlResponseDto, type HoldingPnlRowDto, type HoldingPnlWarningDto, type IdentifyResultDto, type ImportErrorDto, type ImportResultDto, type ImporterConfigControllerGetConfigData, type ImporterConfigControllerGetConfigResponse, type ImporterConfigControllerResetConfigData, type ImporterConfigControllerResetConfigResponse, type ImporterConfigControllerUpdateConfigData, type ImporterConfigControllerUpdateConfigResponse, type ImporterConfigDataDto, type ImporterConfigDto, type InfoControllerGetInfoResponse, type MapperDefaultsDto, type MonetaryDto, type MonthlyForecastDto, type MultiCurrencyBalanceResponseDto, type MultiCurrencyPointDto, type NetWorthByCurrencyDto, type NetWorthResponseDto, type NlpAccountConfirmationDataDto, type NlpAlternativePayeeDto, type NlpControllerClearSessionData, type NlpControllerClearSessionResponse, type NlpControllerGetSessionData, type NlpControllerGetSessionResponse, type NlpControllerProcessNaturalLanguageData, type NlpControllerProcessNaturalLanguageResponse, type NlpDefaultAccountsDto, type NlpDuplicateConfirmationDataDto, type NlpParsedDataDto, type NlpPayeeConfirmationDataDto, type NlpResponseDto, type NlpRuleConfirmationDataDto, type NlpSimilarityDto, type NlpSourceTransactionDto, type NlpSuggestedAccountDto, type NlpSuggestedAccountsDto, type NlpSuggestedPayeeDto, type NlpTargetTransactionDto, type NlpTransactionInfoDto, type OnboardingAccountDto, type OnboardingControllerBootstrapData, type OnboardingControllerBootstrapResponse, type OnboardingDto, OpenAPI, type OpenAPIConfig, type OpeningBalanceResultDto, type PadReconciliationDto, type PadResultDto, type ParserTelemetryReportDto, type PayeeAutocompleteResponseDto, type PayeeControllerAutocompleteData, type PayeeControllerAutocompleteResponse, type PayeeControllerCreateData, type PayeeControllerCreateResponse, type PayeeControllerDeleteData, type PayeeControllerDeleteResponse, type PayeeControllerFindAllData, type PayeeControllerFindAllResponse, type PayeeControllerFindOneData, type PayeeControllerFindOneResponse, type PayeeControllerGetTopPayeesData, type PayeeControllerGetTopPayeesResponse, type PayeeControllerUpdateData, type PayeeControllerUpdateResponse, type PayeeListResponseDto, type PayeeProfileAdminControllerCreateData, type PayeeProfileAdminControllerCreateResponse, type PayeeProfileAdminControllerDeleteData, type PayeeProfileAdminControllerDeleteResponse, type PayeeProfileAdminControllerFindAllData, type PayeeProfileAdminControllerFindAllResponse, type PayeeProfileAdminControllerFindOneData, type PayeeProfileAdminControllerFindOneResponse, type PayeeProfileAdminControllerUnverifyData, type PayeeProfileAdminControllerUnverifyResponse, type PayeeProfileAdminControllerUpdateData, type PayeeProfileAdminControllerUpdateResponse, type PayeeProfileAdminControllerVerifyData, type PayeeProfileAdminControllerVerifyResponse, type PayeeProfileListResponseDto, type PayeeProfileResponseDto, type PayeeResponseDto, type PayeeStatsResponseDto, type PlatformControllerCreateData, type PlatformControllerCreateResponse, type PlatformControllerDeleteData, type PlatformControllerDeleteResponse, type PlatformControllerFindAllResponse, type PlatformControllerGetPlatformListData, type PlatformControllerGetPlatformListResponse, type PlatformControllerMatchPlatformsData, type PlatformControllerMatchPlatformsResponse, type PlatformControllerUpdateData, type PlatformControllerUpdateResponse, type PlatformGroupDto, type PlatformListItemDto, type PlatformMatchResponseDto, type PlatformMatchResultDto, type PortfolioTrendsResponseDto, type PostingDetailDto, type PostingResponseDto, type PriceControllerBulkCreateData, type PriceControllerBulkCreateResponse, type PriceControllerCreateData, type PriceControllerCreateResponse, type PriceControllerDeleteData, type PriceControllerDeleteResponse, type PriceControllerFindAllData, type PriceControllerFindAllResponse, type PriceControllerFindOneData, type PriceControllerFindOneResponse, type PriceControllerUpdateData, type PriceControllerUpdateResponse, type PriceListResponseDto, type PriceResponseDto, type ProcessNlpDto, type PropertyControllerDeleteData, type PropertyControllerDeleteResponse, type PropertyControllerGetAllResponse, type PropertyControllerGetByKeyData, type PropertyControllerGetByKeyResponse, type PropertyControllerUpdateData, type PropertyControllerUpdateResponse, type ProviderSyncConfigDto, type ProviderSyncControllerGetSupportedProvidersData, type ProviderSyncControllerGetSupportedProvidersResponse, type ProviderSyncControllerIsProviderSupportedData, type ProviderSyncControllerIsProviderSupportedResponse, type ProviderSyncControllerSyncData, type ProviderSyncControllerSyncResponse, type ProviderSyncDto, type ProviderSyncResponseDto, ProviderSyncService, type ReconciliationComputeResultDto, type ReconciliationControllerAssertData, type ReconciliationControllerAssertResponse, type ReconciliationControllerComputeData, type ReconciliationControllerComputeResponse, type ReconciliationControllerHistoryData, type ReconciliationControllerHistoryResponse, type ReconciliationControllerPadData, type ReconciliationControllerPadResponse, type ReconciliationRecordDto, type RecurringMatchInfoDto, type RecurringRuleControllerCreateData, type RecurringRuleControllerCreateFromTransactionData, type RecurringRuleControllerCreateFromTransactionResponse, type RecurringRuleControllerCreateResponse, type RecurringRuleControllerDeleteData, type RecurringRuleControllerDeleteResponse, type RecurringRuleControllerFindAllData, type RecurringRuleControllerFindAllResponse, type RecurringRuleControllerFindOneData, type RecurringRuleControllerFindOneResponse, type RecurringRuleControllerGetWithStatsData, type RecurringRuleControllerGetWithStatsResponse, type RecurringRuleControllerUpdateData, type RecurringRuleControllerUpdateResponse, type RecurringRuleResponseDto, type RecurringRuleWithStatsResponseDto, type RecurringSuggestionDto, type RegionConfigDto, type RegionInfoDto, type RegionsMetadataResponseDto, type ReopenAccountDto, type ReportingControllerBackfillSnapshotsData, type ReportingControllerBackfillSnapshotsResponse, type ReportingControllerGenerateSnapshotData, type ReportingControllerGenerateSnapshotResponse, type ReportingControllerGetCashFlowTrendsData, type ReportingControllerGetCashFlowTrendsResponse, type ReportingControllerGetPortfolioTrendsData, type ReportingControllerGetPortfolioTrendsResponse, type ResolveResultDto, type ResolveReviewDto, type ReviewControllerBatchResolveData, type ReviewControllerBatchResolveResponse, type ReviewControllerFindAllData, type ReviewControllerFindAllResponse, type ReviewControllerFindOneData, type ReviewControllerFindOneResponse, type ReviewControllerGetStatsData, type ReviewControllerGetStatsResponse, type ReviewControllerResolveData, type ReviewControllerResolveResponse, type ReviewControllerUndoData, type ReviewControllerUndoResponse, type ReviewDetailDto, type ReviewItemPreviewDto, type ReviewListResponseDto, type ReviewStatsDto, type ReviewSummaryDto, type RuleStatisticsResponseDto, type SignupDto, type SignupResponseDto, type SupportedProvidersResponseDto, type SymbolControllerGetQuoteData, type SymbolControllerGetQuoteResponse, type SymbolControllerSearchData, type SymbolControllerSearchResponse, type SymbolQuoteDto, type SymbolSearchResultDto, type TagSuggestionDto, type TagSuggestionsResponseDto, type TelemetryControllerGetCoverageMetricsData, type TelemetryControllerGetCoverageMetricsResponse, type TelemetryControllerReportCoverageMissData, type TelemetryControllerReportCoverageMissResponse, type TelemetryControllerReportTelemetryData, type TelemetryControllerReportTelemetryResponse, type TemplateMetadataDto, type TemplateMetadataResponseDto, type TestRuleDto, type TestRuleResponseDto, type TimeSeriesPointDto, type TransactionControllerCorrectData, type TransactionControllerCorrectResponse, type TransactionControllerCreateBatchData, type TransactionControllerCreateBatchResponse, type TransactionControllerCreateData, type TransactionControllerCreateResponse, type TransactionControllerDeleteData, type TransactionControllerDeleteResponse, type TransactionControllerGetDetailData, type TransactionControllerGetDetailResponse, type TransactionControllerListData, type TransactionControllerListResponse, type TransactionControllerSuggestTagsData, type TransactionControllerSuggestTagsResponse, type TransactionControllerUpdateData, type TransactionControllerUpdateResponse, type TransactionDetailDto, type TransactionListResponseDto, type TransactionListSummaryDto, type TransactionResponseDto, type TransactionRuleControllerBulkCreateData, type TransactionRuleControllerBulkCreateResponse, type TransactionRuleControllerCreateData, type TransactionRuleControllerCreateResponse, type TransactionRuleControllerDeleteData, type TransactionRuleControllerDeleteResponse, type TransactionRuleControllerExportData, type TransactionRuleControllerExportResponse, type TransactionRuleControllerGetDetailData, type TransactionRuleControllerGetDetailResponse, type TransactionRuleControllerGetStatisticsData, type TransactionRuleControllerGetStatisticsResponse, type TransactionRuleControllerListData, type TransactionRuleControllerListResponse, type TransactionRuleControllerTestData, type TransactionRuleControllerTestResponse, type TransactionRuleControllerUpdateData, type TransactionRuleControllerUpdateResponse, type TransactionRuleControllerValidateData, type TransactionRuleControllerValidateResponse, type TransactionRuleListResponseDto, type TransactionRuleResponseDto, type TransactionSummaryDto, type TrendSummaryDto, type UncoveredFormatMissDto, type UndoResultDto, type UpdateAccountDto, type UpdateBeanEventDto, type UpdateBeanPriceDto, type UpdateCommodityDto, type UpdateConfigDataDto, type UpdateImporterConfigDto, type UpdateMapperDefaultsDto, type UpdatePayeeDto, type UpdatePayeeProfileDto, type UpdatePlatformDto, type UpdatePropertyDto, type UpdateRecurringRuleDto, type UpdateTransactionDto, type UpdateTransactionRuleDto, type UpdateUserSettingDto, type UserControllerDeleteOwnUserData, type UserControllerDeleteOwnUserResponse, type UserControllerDeleteUserData, type UserControllerDeleteUserResponse, type UserControllerGetAllUserSettingsByPageData, type UserControllerGetAllUserSettingsByPageResponse, type UserControllerGetAssetLiabilitySummaryResponse, type UserControllerGetUserData, type UserControllerGetUserInfoData, type UserControllerGetUserInfoResponse, type UserControllerGetUserResponse, type UserControllerSignupUserData, type UserControllerSignupUserResponse, type UserControllerUpdateUserSettingData, type UserControllerUpdateUserSettingResponse, type UserResponseDto, type UserSettingsResponseDto, type ValidateRuleDto, type ValidateRuleResponseDto, type VersionedConfigDto, type action, type action2, type assetClass, type assetSubClass, type assetSubType, type bookingMethod, type branchType, type category, type chartToken, type colorScheme, type confidenceLevel, type conflictStrategy, type dataSource, type equitySubType, type flag, type flag2, type frequency, type importerId, type intent, type investmentAction, type learningSource, type liabilitySubType, type matchLogic, type matchType, type matchType2, type method, type mode, type paymentSource, type period, type productCategory, type provider, type role, type scenario, type source, type source2, type source3, type status, type status2, type status3, type status4, type suggestedAction, type suggestedFrequency, type type, type type2, type type3, type type4, type value, type viewMode };