@firela/api-types 0.0.0-canary.2fbeefe9 → 0.0.0-canary.3550df41

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
@@ -27,9 +27,9 @@ type CreateAccountDto = {
27
27
  */
28
28
  path: string;
29
29
  /**
30
- * Account open date
30
+ * Account open date (server defaults to today)
31
31
  */
32
- openDate: string;
32
+ openDate?: string;
33
33
  /**
34
34
  * Allowed currencies (null = no restriction)
35
35
  */
@@ -51,9 +51,9 @@ type CreateAccountDto = {
51
51
  */
52
52
  icon?: string;
53
53
  /**
54
- * Additional metadata
54
+ * Open directive metadata (NOT an opening-balance amount — use the opening-balance endpoint)
55
55
  */
56
- openMeta?: {
56
+ openDirectiveMeta?: {
57
57
  [key: string]: unknown;
58
58
  };
59
59
  /**
@@ -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' | 'OTHER' | null;
81
85
  /**
82
86
  * Account status
83
87
  */
@@ -115,9 +119,9 @@ type AccountResponseDto = {
115
119
  */
116
120
  icon?: string;
117
121
  /**
118
- * Account metadata
122
+ * Open directive metadata (ADR-0115 Decision 9)
119
123
  */
120
- openMeta?: {
124
+ openDirectiveMeta?: {
121
125
  [key: string]: unknown;
122
126
  };
123
127
  /**
@@ -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' | 'OTHER';
148
156
  /**
149
157
  * Account status
150
158
  */
@@ -173,9 +181,9 @@ type UpdateAccountDto = {
173
181
  */
174
182
  icon?: string;
175
183
  /**
176
- * Additional metadata (merged with existing)
184
+ * Open directive metadata (merged with existing; NOT an opening-balance amount)
177
185
  */
178
- openMeta?: {
186
+ openDirectiveMeta?: {
179
187
  [key: string]: unknown;
180
188
  };
181
189
  /**
@@ -201,6 +209,26 @@ type ReopenAccountDto = {
201
209
  */
202
210
  reopenDate?: string;
203
211
  };
212
+ type CreateOpeningBalanceDto = {
213
+ /**
214
+ * Opening balance amount (non-negative)
215
+ */
216
+ amount: number;
217
+ /**
218
+ * Currency code
219
+ */
220
+ currency: string;
221
+ /**
222
+ * Opening-balance date (defaults to now)
223
+ */
224
+ date?: string;
225
+ };
226
+ type OpeningBalanceResultDto = {
227
+ /**
228
+ * Created opening-balance transaction id.
229
+ */
230
+ transactionId: string;
231
+ };
204
232
  type AccountStandardResponseDto = {
205
233
  /**
206
234
  * Account path (hierarchical, colon-separated)
@@ -2355,367 +2383,209 @@ type ForecastResponseDto = {
2355
2383
  */
2356
2384
  periodEnd: string;
2357
2385
  };
2358
- type CreateTransactionRuleDto = {
2359
- name: string;
2360
- description?: string;
2361
- narrationKeywords?: Array<unknown[]>;
2362
- payeeKeywords?: Array<unknown[]>;
2363
- categoryKeywords?: Array<unknown[]>;
2386
+ type CurrencyBalanceDto = {
2364
2387
  /**
2365
- * Payment method keywords (e.g., HuaBei, YuEBao)
2388
+ * ISO 4217 currency code
2366
2389
  */
2367
- methodKeywords?: Array<unknown[]>;
2390
+ currency: string;
2368
2391
  /**
2369
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2392
+ * Balance amount
2370
2393
  */
2371
- categoryAccount?: string;
2372
- matchLogic: 'OR' | 'AND';
2394
+ balance: string;
2395
+ };
2396
+ type TimeSeriesPointDto = {
2373
2397
  /**
2374
- * Minimum transaction amount (inclusive)
2398
+ * Date in YYYY-MM-DD format
2375
2399
  */
2376
- amountMin?: number;
2400
+ date: string;
2377
2401
  /**
2378
- * Maximum transaction amount (inclusive)
2402
+ * Value at this date (in base currency)
2379
2403
  */
2380
- amountMax?: number;
2381
- priority: number;
2382
- additionalTags?: Array<unknown[]>;
2383
- additionalMetadata?: {
2404
+ value: string;
2405
+ /**
2406
+ * Change from previous point
2407
+ */
2408
+ change?: {
2384
2409
  [key: string]: unknown;
2385
2410
  };
2386
2411
  /**
2387
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2412
+ * Total assets at this date (in base currency)
2388
2413
  */
2389
- upsertByPayee?: boolean;
2390
- };
2391
- type matchLogic = 'OR' | 'AND';
2392
- type AmountRangeDto = {
2414
+ assets?: string;
2393
2415
  /**
2394
- * Minimum amount
2416
+ * Total liabilities at this date (in base currency)
2395
2417
  */
2396
- min?: number;
2418
+ liabilities?: string;
2397
2419
  /**
2398
- * Maximum amount
2420
+ * Multi-currency breakdown for this point
2399
2421
  */
2400
- max?: number;
2422
+ byCurrency?: Array<CurrencyBalanceDto>;
2401
2423
  };
2402
- type TransactionRuleResponseDto = {
2424
+ type TrendSummaryDto = {
2403
2425
  /**
2404
- * Rule ID
2426
+ * Value at start of period
2405
2427
  */
2406
- id: string;
2428
+ startValue: string;
2407
2429
  /**
2408
- * Rule name
2430
+ * Value at end of period
2409
2431
  */
2410
- name: string;
2432
+ endValue: string;
2411
2433
  /**
2412
- * Rule description
2434
+ * Total change over period
2413
2435
  */
2414
- description?: string;
2436
+ totalChange: string;
2415
2437
  /**
2416
- * Keywords to match in transaction narration
2438
+ * Total change percentage
2417
2439
  */
2418
- narrationKeywords: Array<string>;
2440
+ totalChangePercentage: string;
2441
+ };
2442
+ type MultiCurrencyPointDto = {
2419
2443
  /**
2420
- * Keywords to match in payee name
2444
+ * Date in YYYY-MM-DD format
2421
2445
  */
2422
- payeeKeywords: Array<string>;
2446
+ date: string;
2423
2447
  /**
2424
- * Keywords to match in category
2448
+ * Balances by currency
2425
2449
  */
2426
- categoryKeywords: Array<string>;
2450
+ byCurrency: Array<CurrencyBalanceDto>;
2451
+ };
2452
+ type PortfolioTrendsResponseDto = {
2427
2453
  /**
2428
- * Keywords to match in payment method
2454
+ * Time series data points
2429
2455
  */
2430
- methodKeywords: Array<string>;
2456
+ series: Array<TimeSeriesPointDto>;
2431
2457
  /**
2432
- * Destination account for categorization
2458
+ * Period summary
2433
2459
  */
2434
- categoryAccount?: string;
2460
+ summary: TrendSummaryDto;
2435
2461
  /**
2436
- * Keyword matching logic
2462
+ * Period requested
2437
2463
  */
2438
- matchLogic: 'OR' | 'AND';
2464
+ period: string;
2439
2465
  /**
2440
- * Amount range for matching
2466
+ * Data granularity
2441
2467
  */
2442
- amountRange?: AmountRangeDto;
2468
+ granularity: string;
2443
2469
  /**
2444
- * Rule priority (0-1000, higher = first match)
2470
+ * Base currency for converted values
2445
2471
  */
2446
- priority: number;
2472
+ currency: string;
2447
2473
  /**
2448
- * Whether the rule is enabled
2474
+ * Multi-currency time series (each point has currency breakdown)
2449
2475
  */
2450
- enabled: boolean;
2476
+ byCurrency?: Array<MultiCurrencyPointDto>;
2451
2477
  /**
2452
- * Learning source: NLP, REVIEW_CENTER, or null for manual
2478
+ * Exchange rate warnings
2453
2479
  */
2454
- learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
2480
+ warnings?: Array<ExchangeRateWarningDto>;
2481
+ };
2482
+ type CashFlowPointDto = {
2455
2483
  /**
2456
- * Whether auto-apply is enabled for this rule
2484
+ * Month key (YYYY-MM)
2457
2485
  */
2458
- autoApplyEnabled: boolean;
2486
+ month: string;
2459
2487
  /**
2460
- * Number of confirmations for NLP-learned rules
2488
+ * Income in base currency (absolute, converted)
2461
2489
  */
2462
- confirmationCount: number;
2490
+ income: string;
2463
2491
  /**
2464
- * Additional tags
2492
+ * Expense in base currency (absolute, converted)
2465
2493
  */
2466
- additionalTags: Array<string>;
2494
+ expense: string;
2467
2495
  /**
2468
- * Additional metadata
2496
+ * netSavings = income − expense (savings positive)
2469
2497
  */
2470
- additionalMetadata?: {
2471
- [key: string]: string;
2472
- };
2498
+ netSavings: string;
2499
+ };
2500
+ type CashFlowTrendSummaryDto = {
2473
2501
  /**
2474
- * Created timestamp
2502
+ * Total income across the period
2475
2503
  */
2476
- createdAt: string;
2504
+ totalIncome: string;
2477
2505
  /**
2478
- * Updated timestamp
2506
+ * Total expense across the period
2479
2507
  */
2480
- updatedAt: string;
2481
- };
2482
- /**
2483
- * Learning source: NLP, REVIEW_CENTER, or null for manual
2484
- */
2485
- type learningSource = 'NLP' | 'REVIEW_CENTER';
2486
- type TransactionRuleListResponseDto = {
2487
- data: Array<TransactionRuleResponseDto>;
2508
+ totalExpense: string;
2488
2509
  /**
2489
- * Total count of rules
2510
+ * income expense across the period
2490
2511
  */
2491
- total: number;
2512
+ totalNetSavings: string;
2492
2513
  /**
2493
- * Results per page
2514
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
2494
2515
  */
2495
- limit: number;
2516
+ averageMonthlyNetSavings: string;
2517
+ };
2518
+ type CashFlowTrendsResponseDto = {
2496
2519
  /**
2497
- * Pagination offset
2520
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
2498
2521
  */
2499
- offset: number;
2500
- };
2501
- type ValidateRuleDto = {
2502
- name: string;
2503
- description?: string;
2504
- narrationKeywords?: Array<unknown[]>;
2505
- payeeKeywords?: Array<unknown[]>;
2506
- categoryKeywords?: Array<unknown[]>;
2522
+ series: Array<CashFlowPointDto>;
2507
2523
  /**
2508
- * Payment method keywords (e.g., HuaBei, YuEBao)
2524
+ * Period totals
2509
2525
  */
2510
- methodKeywords?: Array<unknown[]>;
2526
+ summary: CashFlowTrendSummaryDto;
2511
2527
  /**
2512
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2528
+ * Period requested
2513
2529
  */
2514
- categoryAccount?: string;
2515
- matchLogic: 'OR' | 'AND';
2530
+ period: string;
2516
2531
  /**
2517
- * Minimum transaction amount (inclusive)
2532
+ * Data granularity (v1 returns month buckets)
2518
2533
  */
2519
- amountMin?: number;
2534
+ granularity: string;
2520
2535
  /**
2521
- * Maximum transaction amount (inclusive)
2536
+ * Base currency for converted values
2522
2537
  */
2523
- amountMax?: number;
2524
- priority: number;
2525
- additionalTags?: Array<unknown[]>;
2526
- additionalMetadata?: {
2527
- [key: string]: unknown;
2528
- };
2538
+ currency: string;
2529
2539
  /**
2530
- * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2540
+ * Exchange rate warnings (e.g. missing rate for a currency)
2531
2541
  */
2532
- upsertByPayee?: boolean;
2542
+ warnings?: Array<ExchangeRateWarningDto>;
2533
2543
  };
2534
- type ValidateRuleResponseDto = {
2544
+ type GenerateSnapshotBody = unknown;
2545
+ type GenerateSnapshotResponse = unknown;
2546
+ type BackfillSnapshotsBody = unknown;
2547
+ type BackfillSnapshotsResponse = unknown;
2548
+ type DeleteOwnUserDto = {
2535
2549
  /**
2536
- * Whether the rule configuration is valid
2550
+ * Access token for user verification
2537
2551
  */
2538
- valid: boolean;
2552
+ accessToken: string;
2553
+ };
2554
+ type SignupDto = {
2539
2555
  /**
2540
- * List of validation errors (empty if valid)
2556
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2541
2557
  */
2542
- errors: Array<unknown[]>;
2558
+ turnstileToken?: string;
2559
+ };
2560
+ type SignupResponseDto = {
2543
2561
  /**
2544
- * List of validation warnings (non-blocking issues)
2562
+ * JWT auth token
2545
2563
  */
2546
- warnings: Array<unknown[]>;
2547
- };
2548
- type BulkCreateRulesDto = {
2564
+ authToken: string;
2549
2565
  /**
2550
- * Array of rules to import
2566
+ * Auto-generated access token
2551
2567
  */
2552
- rules: Array<unknown[]>;
2568
+ accessToken: string;
2553
2569
  /**
2554
- * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2570
+ * Assigned user role
2555
2571
  */
2556
- conflictStrategy: 'replace' | 'skip';
2572
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2557
2573
  };
2558
2574
  /**
2559
- * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2575
+ * Assigned user role
2560
2576
  */
2561
- type conflictStrategy = 'replace' | 'skip';
2562
- type BulkCreateRulesResponseDto = {
2577
+ type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2578
+ type UpdateUserSettingDto = {
2563
2579
  /**
2564
- * Number of successfully created rules
2580
+ * Security ID
2565
2581
  */
2566
- successCount: number;
2582
+ secId?: number;
2567
2583
  /**
2568
- * Number of failed rules
2584
+ * Annual interest rate
2569
2585
  */
2570
- failureCount: number;
2586
+ annualInterestRate?: number;
2571
2587
  /**
2572
- * Error details for failed rules
2573
- */
2574
- errors: Array<{
2575
- index?: number;
2576
- message?: string;
2577
- }>;
2578
- /**
2579
- * IDs of successfully created rules
2580
- */
2581
- createdRuleIds: Array<string>;
2582
- };
2583
- type ExportRulesResponseDto = {
2584
- /**
2585
- * Export timestamp
2586
- */
2587
- exportedAt: string;
2588
- /**
2589
- * User ID
2590
- */
2591
- userId: string;
2592
- /**
2593
- * Number of exported rules
2594
- */
2595
- ruleCount: number;
2596
- /**
2597
- * Exported rules
2598
- */
2599
- rules: unknown[];
2600
- };
2601
- type RuleStatisticsResponseDto = {
2602
- /**
2603
- * Statistics time period
2604
- */
2605
- period: '7d' | '30d' | '90d';
2606
- /**
2607
- * Total number of rules
2608
- */
2609
- totalRules: number;
2610
- /**
2611
- * Number of rules with at least one match
2612
- */
2613
- rulesWithMatches: number;
2614
- /**
2615
- * Total number of matches across all rules
2616
- */
2617
- totalMatches: number;
2618
- /**
2619
- * Average confidence score across all matches
2620
- */
2621
- averageConfidence: number;
2622
- /**
2623
- * Per-rule statistics
2624
- */
2625
- ruleStats: Array<{
2626
- ruleId?: string;
2627
- ruleName?: string;
2628
- matchCount?: number;
2629
- averageConfidence?: number;
2630
- }>;
2631
- };
2632
- /**
2633
- * Statistics time period
2634
- */
2635
- type period = '7d' | '30d' | '90d';
2636
- type UpdateTransactionRuleDto = {
2637
- name?: string;
2638
- description?: string;
2639
- narrationKeywords?: Array<unknown[]>;
2640
- payeeKeywords?: Array<unknown[]>;
2641
- categoryKeywords?: Array<unknown[]>;
2642
- /**
2643
- * Payment method keywords (e.g., HuaBei, YuEBao)
2644
- */
2645
- methodKeywords?: Array<unknown[]>;
2646
- /**
2647
- * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2648
- */
2649
- categoryAccount?: string;
2650
- matchLogic?: 'OR' | 'AND';
2651
- /**
2652
- * Minimum transaction amount (inclusive)
2653
- */
2654
- amountMin?: number;
2655
- /**
2656
- * Maximum transaction amount (inclusive)
2657
- */
2658
- amountMax?: number;
2659
- priority?: number;
2660
- /**
2661
- * Enable or disable the rule
2662
- */
2663
- enabled?: boolean;
2664
- additionalTags?: Array<unknown[]>;
2665
- additionalMetadata?: {
2666
- [key: string]: unknown;
2667
- };
2668
- };
2669
- type TestRuleDto = {
2670
- narration: string;
2671
- payee?: string;
2672
- categoryAccount?: string;
2673
- amount?: number;
2674
- currency?: string;
2675
- };
2676
- type TestRuleResponseDto = {
2677
- /**
2678
- * Rule ID that was tested
2679
- */
2680
- ruleId: string;
2681
- /**
2682
- * Whether the rule matched the test data
2683
- */
2684
- matches: boolean;
2685
- /**
2686
- * Match confidence score (0-1)
2687
- */
2688
- confidence: number;
2689
- /**
2690
- * Details of which fields matched
2691
- */
2692
- matchDetails: {
2693
- [key: string]: unknown;
2694
- };
2695
- };
2696
- type DeleteOwnUserDto = {
2697
- /**
2698
- * Access token for user verification
2699
- */
2700
- accessToken: string;
2701
- };
2702
- type SignupDto = {
2703
- /**
2704
- * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2705
- */
2706
- turnstileToken?: string;
2707
- };
2708
- type UpdateUserSettingDto = {
2709
- /**
2710
- * Security ID
2711
- */
2712
- secId?: number;
2713
- /**
2714
- * Annual interest rate
2715
- */
2716
- annualInterestRate?: number;
2717
- /**
2718
- * Currency code
2588
+ * Currency code
2719
2589
  */
2720
2590
  currency?: string;
2721
2591
  /**
@@ -2805,107 +2675,445 @@ type UpdatePropertyDto = {
2805
2675
  */
2806
2676
  value: string;
2807
2677
  };
2808
- type CreateBeanEventDto = {
2678
+ type CreateTransactionRuleDto = {
2679
+ name: string;
2680
+ description?: string;
2681
+ narrationKeywords?: Array<unknown[]>;
2682
+ payeeKeywords?: Array<unknown[]>;
2683
+ categoryKeywords?: Array<unknown[]>;
2809
2684
  /**
2810
- * Life event date (ISO 8601)
2685
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2811
2686
  */
2812
- date: string;
2687
+ methodKeywords?: Array<unknown[]>;
2813
2688
  /**
2814
- * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
2689
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2815
2690
  */
2816
- type: string;
2691
+ categoryAccount?: string;
2692
+ matchLogic: 'OR' | 'AND';
2817
2693
  /**
2818
- * Life event description. Empty string is a VALID value (distinct from absence).
2694
+ * Minimum transaction amount (inclusive)
2819
2695
  */
2820
- description: string;
2696
+ amountMin?: number;
2821
2697
  /**
2822
- * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
2698
+ * Maximum transaction amount (inclusive)
2823
2699
  */
2824
- meta?: {
2700
+ amountMax?: number;
2701
+ priority: number;
2702
+ additionalTags?: Array<unknown[]>;
2703
+ additionalMetadata?: {
2825
2704
  [key: string]: unknown;
2826
2705
  };
2827
- };
2828
- type EventResponseDto = {
2829
2706
  /**
2830
- * Unique identifier
2707
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2831
2708
  */
2832
- id: string;
2709
+ upsertByPayee?: boolean;
2710
+ };
2711
+ type matchLogic = 'OR' | 'AND';
2712
+ type AmountRangeDto = {
2833
2713
  /**
2834
- * User ID (owner of the life event)
2714
+ * Minimum amount
2835
2715
  */
2836
- userId: string;
2716
+ min?: number;
2837
2717
  /**
2838
- * Life event date (ISO 8601 format)
2718
+ * Maximum amount
2839
2719
  */
2840
- date: string;
2720
+ max?: number;
2721
+ };
2722
+ type TransactionRuleResponseDto = {
2841
2723
  /**
2842
- * Life event type (user-defined, e.g., "employer", "location")
2724
+ * Rule ID
2843
2725
  */
2844
- type: string;
2726
+ id: string;
2845
2727
  /**
2846
- * Life event description. May be an empty string (a valid value distinct from absence).
2728
+ * Rule name
2847
2729
  */
2848
- description: string;
2730
+ name: string;
2849
2731
  /**
2850
- * Product-side metadata (free-form JSON)
2732
+ * Rule description
2851
2733
  */
2852
- meta: {
2853
- [key: string]: unknown;
2854
- };
2734
+ description?: string;
2855
2735
  /**
2856
- * Creation timestamp
2736
+ * Keywords to match in transaction narration
2857
2737
  */
2858
- createdAt: string;
2738
+ narrationKeywords: Array<string>;
2859
2739
  /**
2860
- * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
2740
+ * Keywords to match in payee name
2861
2741
  */
2862
- updatedAt: string;
2863
- };
2864
- type EventListResponseDto = {
2742
+ payeeKeywords: Array<string>;
2865
2743
  /**
2866
- * List of life events
2744
+ * Keywords to match in category
2867
2745
  */
2868
- items: Array<EventResponseDto>;
2746
+ categoryKeywords: Array<string>;
2869
2747
  /**
2870
- * Total number of life events matching the query
2748
+ * Keywords to match in payment method
2871
2749
  */
2872
- total: number;
2873
- };
2874
- type UpdateBeanEventDto = {
2750
+ methodKeywords: Array<string>;
2875
2751
  /**
2876
- * Life event date (ISO 8601)
2752
+ * Destination account for categorization
2877
2753
  */
2878
- date?: string;
2754
+ categoryAccount?: string;
2879
2755
  /**
2880
- * Life event type (user-defined)
2756
+ * Keyword matching logic
2881
2757
  */
2882
- type?: string;
2758
+ matchLogic: 'OR' | 'AND';
2883
2759
  /**
2884
- * Life event description. Empty string is a VALID value (distinct from absence).
2760
+ * Amount range for matching
2885
2761
  */
2886
- description?: string;
2762
+ amountRange?: AmountRangeDto;
2887
2763
  /**
2888
- * Product-side metadata (free-form JSON)
2764
+ * Rule priority (0-1000, higher = first match)
2889
2765
  */
2890
- meta?: {
2891
- [key: string]: unknown;
2892
- };
2893
- };
2894
- type OnboardingAccountDto = {
2766
+ priority: number;
2895
2767
  /**
2896
- * Account path (Assets/Liabilities only; format validated by the account service)
2768
+ * Whether the rule is enabled
2897
2769
  */
2898
- path: string;
2770
+ enabled: boolean;
2899
2771
  /**
2900
- * ISO 4217 currency code (3 letters)
2772
+ * Learning source: NLP, REVIEW_CENTER, or null for manual
2901
2773
  */
2902
- currency: string;
2774
+ learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
2903
2775
  /**
2904
- * Opening balance as a non-negative Decimal string (e.g. "1000.00")
2776
+ * Whether auto-apply is enabled for this rule
2905
2777
  */
2906
- openingBalance?: string;
2778
+ autoApplyEnabled: boolean;
2907
2779
  /**
2908
- * Platform ID to bind the account to (references Platform.id); omit for unbound
2780
+ * Number of confirmations for NLP-learned rules
2781
+ */
2782
+ confirmationCount: number;
2783
+ /**
2784
+ * Additional tags
2785
+ */
2786
+ additionalTags: Array<string>;
2787
+ /**
2788
+ * Additional metadata
2789
+ */
2790
+ additionalMetadata?: {
2791
+ [key: string]: string;
2792
+ };
2793
+ /**
2794
+ * Created timestamp
2795
+ */
2796
+ createdAt: string;
2797
+ /**
2798
+ * Updated timestamp
2799
+ */
2800
+ updatedAt: string;
2801
+ };
2802
+ /**
2803
+ * Learning source: NLP, REVIEW_CENTER, or null for manual
2804
+ */
2805
+ type learningSource = 'NLP' | 'REVIEW_CENTER';
2806
+ type TransactionRuleListResponseDto = {
2807
+ data: Array<TransactionRuleResponseDto>;
2808
+ /**
2809
+ * Total count of rules
2810
+ */
2811
+ total: number;
2812
+ /**
2813
+ * Results per page
2814
+ */
2815
+ limit: number;
2816
+ /**
2817
+ * Pagination offset
2818
+ */
2819
+ offset: number;
2820
+ };
2821
+ type ValidateRuleDto = {
2822
+ name: string;
2823
+ description?: string;
2824
+ narrationKeywords?: Array<unknown[]>;
2825
+ payeeKeywords?: Array<unknown[]>;
2826
+ categoryKeywords?: Array<unknown[]>;
2827
+ /**
2828
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2829
+ */
2830
+ methodKeywords?: Array<unknown[]>;
2831
+ /**
2832
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2833
+ */
2834
+ categoryAccount?: string;
2835
+ matchLogic: 'OR' | 'AND';
2836
+ /**
2837
+ * Minimum transaction amount (inclusive)
2838
+ */
2839
+ amountMin?: number;
2840
+ /**
2841
+ * Maximum transaction amount (inclusive)
2842
+ */
2843
+ amountMax?: number;
2844
+ priority: number;
2845
+ additionalTags?: Array<unknown[]>;
2846
+ additionalMetadata?: {
2847
+ [key: string]: unknown;
2848
+ };
2849
+ /**
2850
+ * If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
2851
+ */
2852
+ upsertByPayee?: boolean;
2853
+ };
2854
+ type ValidateRuleResponseDto = {
2855
+ /**
2856
+ * Whether the rule configuration is valid
2857
+ */
2858
+ valid: boolean;
2859
+ /**
2860
+ * List of validation errors (empty if valid)
2861
+ */
2862
+ errors: Array<unknown[]>;
2863
+ /**
2864
+ * List of validation warnings (non-blocking issues)
2865
+ */
2866
+ warnings: Array<unknown[]>;
2867
+ };
2868
+ type BulkCreateRulesDto = {
2869
+ /**
2870
+ * Array of rules to import
2871
+ */
2872
+ rules: Array<unknown[]>;
2873
+ /**
2874
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2875
+ */
2876
+ conflictStrategy: 'replace' | 'skip';
2877
+ };
2878
+ /**
2879
+ * Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
2880
+ */
2881
+ type conflictStrategy = 'replace' | 'skip';
2882
+ type BulkCreateRulesResponseDto = {
2883
+ /**
2884
+ * Number of successfully created rules
2885
+ */
2886
+ successCount: number;
2887
+ /**
2888
+ * Number of failed rules
2889
+ */
2890
+ failureCount: number;
2891
+ /**
2892
+ * Error details for failed rules
2893
+ */
2894
+ errors: Array<{
2895
+ index?: number;
2896
+ message?: string;
2897
+ }>;
2898
+ /**
2899
+ * IDs of successfully created rules
2900
+ */
2901
+ createdRuleIds: Array<string>;
2902
+ };
2903
+ type ExportRulesResponseDto = {
2904
+ /**
2905
+ * Export timestamp
2906
+ */
2907
+ exportedAt: string;
2908
+ /**
2909
+ * User ID
2910
+ */
2911
+ userId: string;
2912
+ /**
2913
+ * Number of exported rules
2914
+ */
2915
+ ruleCount: number;
2916
+ /**
2917
+ * Exported rules
2918
+ */
2919
+ rules: unknown[];
2920
+ };
2921
+ type RuleStatisticsResponseDto = {
2922
+ /**
2923
+ * Statistics time period
2924
+ */
2925
+ period: '7d' | '30d' | '90d';
2926
+ /**
2927
+ * Total number of rules
2928
+ */
2929
+ totalRules: number;
2930
+ /**
2931
+ * Number of rules with at least one match
2932
+ */
2933
+ rulesWithMatches: number;
2934
+ /**
2935
+ * Total number of matches across all rules
2936
+ */
2937
+ totalMatches: number;
2938
+ /**
2939
+ * Average confidence score across all matches
2940
+ */
2941
+ averageConfidence: number;
2942
+ /**
2943
+ * Per-rule statistics
2944
+ */
2945
+ ruleStats: Array<{
2946
+ ruleId?: string;
2947
+ ruleName?: string;
2948
+ matchCount?: number;
2949
+ averageConfidence?: number;
2950
+ }>;
2951
+ };
2952
+ /**
2953
+ * Statistics time period
2954
+ */
2955
+ type period = '7d' | '30d' | '90d';
2956
+ type UpdateTransactionRuleDto = {
2957
+ name?: string;
2958
+ description?: string;
2959
+ narrationKeywords?: Array<unknown[]>;
2960
+ payeeKeywords?: Array<unknown[]>;
2961
+ categoryKeywords?: Array<unknown[]>;
2962
+ /**
2963
+ * Payment method keywords (e.g., HuaBei, YuEBao)
2964
+ */
2965
+ methodKeywords?: Array<unknown[]>;
2966
+ /**
2967
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
2968
+ */
2969
+ categoryAccount?: string;
2970
+ matchLogic?: 'OR' | 'AND';
2971
+ /**
2972
+ * Minimum transaction amount (inclusive)
2973
+ */
2974
+ amountMin?: number;
2975
+ /**
2976
+ * Maximum transaction amount (inclusive)
2977
+ */
2978
+ amountMax?: number;
2979
+ priority?: number;
2980
+ /**
2981
+ * Enable or disable the rule
2982
+ */
2983
+ enabled?: boolean;
2984
+ additionalTags?: Array<unknown[]>;
2985
+ additionalMetadata?: {
2986
+ [key: string]: unknown;
2987
+ };
2988
+ };
2989
+ type TestRuleDto = {
2990
+ narration: string;
2991
+ payee?: string;
2992
+ categoryAccount?: string;
2993
+ amount?: number;
2994
+ currency?: string;
2995
+ };
2996
+ type TestRuleResponseDto = {
2997
+ /**
2998
+ * Rule ID that was tested
2999
+ */
3000
+ ruleId: string;
3001
+ /**
3002
+ * Whether the rule matched the test data
3003
+ */
3004
+ matches: boolean;
3005
+ /**
3006
+ * Match confidence score (0-1)
3007
+ */
3008
+ confidence: number;
3009
+ /**
3010
+ * Details of which fields matched
3011
+ */
3012
+ matchDetails: {
3013
+ [key: string]: unknown;
3014
+ };
3015
+ };
3016
+ type CreateBeanEventDto = {
3017
+ /**
3018
+ * Life event date (ISO 8601)
3019
+ */
3020
+ date: string;
3021
+ /**
3022
+ * Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
3023
+ */
3024
+ type: string;
3025
+ /**
3026
+ * Life event description. Empty string is a VALID value (distinct from absence).
3027
+ */
3028
+ description: string;
3029
+ /**
3030
+ * Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
3031
+ */
3032
+ meta?: {
3033
+ [key: string]: unknown;
3034
+ };
3035
+ };
3036
+ type EventResponseDto = {
3037
+ /**
3038
+ * Unique identifier
3039
+ */
3040
+ id: string;
3041
+ /**
3042
+ * User ID (owner of the life event)
3043
+ */
3044
+ userId: string;
3045
+ /**
3046
+ * Life event date (ISO 8601 format)
3047
+ */
3048
+ date: string;
3049
+ /**
3050
+ * Life event type (user-defined, e.g., "employer", "location")
3051
+ */
3052
+ type: string;
3053
+ /**
3054
+ * Life event description. May be an empty string (a valid value distinct from absence).
3055
+ */
3056
+ description: string;
3057
+ /**
3058
+ * Product-side metadata (free-form JSON)
3059
+ */
3060
+ meta: {
3061
+ [key: string]: unknown;
3062
+ };
3063
+ /**
3064
+ * Creation timestamp
3065
+ */
3066
+ createdAt: string;
3067
+ /**
3068
+ * Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
3069
+ */
3070
+ updatedAt: string;
3071
+ };
3072
+ type EventListResponseDto = {
3073
+ /**
3074
+ * List of life events
3075
+ */
3076
+ items: Array<EventResponseDto>;
3077
+ /**
3078
+ * Total number of life events matching the query
3079
+ */
3080
+ total: number;
3081
+ };
3082
+ type UpdateBeanEventDto = {
3083
+ /**
3084
+ * Life event date (ISO 8601)
3085
+ */
3086
+ date?: string;
3087
+ /**
3088
+ * Life event type (user-defined)
3089
+ */
3090
+ type?: string;
3091
+ /**
3092
+ * Life event description. Empty string is a VALID value (distinct from absence).
3093
+ */
3094
+ description?: string;
3095
+ /**
3096
+ * Product-side metadata (free-form JSON)
3097
+ */
3098
+ meta?: {
3099
+ [key: string]: unknown;
3100
+ };
3101
+ };
3102
+ type OnboardingAccountDto = {
3103
+ /**
3104
+ * Account path (Assets/Liabilities only; format validated by the account service)
3105
+ */
3106
+ path: string;
3107
+ /**
3108
+ * ISO 4217 currency code (3 letters)
3109
+ */
3110
+ currency: string;
3111
+ /**
3112
+ * Opening balance as a non-negative Decimal string (e.g. "1000.00")
3113
+ */
3114
+ openingBalance?: string;
3115
+ /**
3116
+ * Platform ID to bind the account to (references Platform.id); omit for unbound
2909
3117
  */
2910
3118
  platformId?: string;
2911
3119
  };
@@ -3407,6 +3615,14 @@ type ProcessNlpDto = {
3407
3615
  parsedData?: {
3408
3616
  [key: string]: unknown;
3409
3617
  };
3618
+ /**
3619
+ * 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.
3620
+ */
3621
+ selectedRuleId?: string;
3622
+ /**
3623
+ * 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.
3624
+ */
3625
+ selectedAccount?: string;
3410
3626
  };
3411
3627
  type NlpTransactionInfoDto = {
3412
3628
  /**
@@ -3640,9 +3856,9 @@ type NlpAccountConfirmationDataDto = {
3640
3856
  */
3641
3857
  invalidAccount: string;
3642
3858
  /**
3643
- * Suggested replacement account
3859
+ * Suggested replacement account (omitted when no clear candidate)
3644
3860
  */
3645
- suggestedAccount: string;
3861
+ suggestedAccount?: string;
3646
3862
  /**
3647
3863
  * Similar accounts for user selection
3648
3864
  */
@@ -3764,7 +3980,7 @@ type NlpSuggestedAccountDto = {
3764
3980
  */
3765
3981
  account: string;
3766
3982
  /**
3767
- * Confidence score for this suggestion (0-1)
3983
+ * Confidence score for this suggestion (0-1). Present = predicted (confirm/confirm_rule/confirm_account); omitted = actual persisted account (created). (#586)
3768
3984
  */
3769
3985
  confidence?: number;
3770
3986
  };
@@ -3780,21 +3996,21 @@ type NlpSuggestedAccountsDto = {
3780
3996
  };
3781
3997
  type NlpDefaultAccountsDto = {
3782
3998
  /**
3783
- * Default asset account
3999
+ * Default OPEN asset account (MRU when multiple), or null when none/ambiguous
3784
4000
  */
3785
- asset: string;
4001
+ asset: string | null;
3786
4002
  /**
3787
- * Default expense account
4003
+ * Default OPEN expense account (MRU when multiple), or null when none/ambiguous
3788
4004
  */
3789
- expense: string;
4005
+ expense: string | null;
3790
4006
  /**
3791
- * Default income account
4007
+ * Default OPEN income account (MRU when multiple), or null when none/ambiguous
3792
4008
  */
3793
- income: string;
4009
+ income: string | null;
3794
4010
  /**
3795
- * Default liability account
4011
+ * Default OPEN liability account (MRU when multiple), or null when none/ambiguous
3796
4012
  */
3797
- liability: string;
4013
+ liability: string | null;
3798
4014
  };
3799
4015
  type NlpResponseDto = {
3800
4016
  /**
@@ -3804,7 +4020,7 @@ type NlpResponseDto = {
3804
4020
  /**
3805
4021
  * Action taken or requested
3806
4022
  */
3807
- action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4023
+ action: 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3808
4024
  /**
3809
4025
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3810
4026
  */
@@ -3893,11 +4109,11 @@ type NlpResponseDto = {
3893
4109
  */
3894
4110
  recurringSuggestion?: RecurringSuggestionDto;
3895
4111
  /**
3896
- * Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.
4112
+ * 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.
3897
4113
  */
3898
4114
  suggestedAccounts?: NlpSuggestedAccountsDto;
3899
4115
  /**
3900
- * Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.
4116
+ * Default fallback accounts for the user/region (#586). v1 returns universal constants; per-user personalization is planned.
3901
4117
  */
3902
4118
  defaultAccounts?: NlpDefaultAccountsDto;
3903
4119
  };
@@ -3908,7 +4124,7 @@ type status4 = 'success' | 'pending' | 'error';
3908
4124
  /**
3909
4125
  * Action taken or requested
3910
4126
  */
3911
- type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel';
4127
+ type action2 = 'created' | 'ask' | 'confirm' | 'confirm_duplicate' | 'confirm_rule' | 'confirm_account' | 'confirm_payee' | 'cancel' | 'aborted';
3912
4128
  /**
3913
4129
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
3914
4130
  */
@@ -3925,6 +4141,100 @@ type liabilitySubType = 'borrow' | 'repay';
3925
4141
  * Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.
3926
4142
  */
3927
4143
  type equitySubType = 'opening' | 'adjustment';
4144
+ type PlatformListItemDto = {
4145
+ /**
4146
+ * Global platform ID
4147
+ */
4148
+ id: string;
4149
+ /**
4150
+ * Platform name
4151
+ */
4152
+ name: string;
4153
+ /**
4154
+ * Platform URL
4155
+ */
4156
+ url: string;
4157
+ /**
4158
+ * Platform type
4159
+ */
4160
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4161
+ /**
4162
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4163
+ */
4164
+ canonical: string;
4165
+ /**
4166
+ * Suggested path segment — canonical with first char uppercased (ACC_COMP_NAME_RE)
4167
+ */
4168
+ suggestedSegment: string;
4169
+ /**
4170
+ * Logo URL
4171
+ */
4172
+ logoUrl: string | null;
4173
+ /**
4174
+ * Whether user has accounts using this platform
4175
+ */
4176
+ isBound: boolean;
4177
+ };
4178
+ /**
4179
+ * Platform type
4180
+ */
4181
+ type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4182
+ type PlatformMatchResultDto = {
4183
+ /**
4184
+ * Global platform ID
4185
+ */
4186
+ id: string;
4187
+ /**
4188
+ * Platform name (e.g., "ICBC")
4189
+ */
4190
+ name: string;
4191
+ /**
4192
+ * Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
4193
+ */
4194
+ canonical: string;
4195
+ /**
4196
+ * Platform type
4197
+ */
4198
+ type: 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
4199
+ /**
4200
+ * Suggested path segment — canonical, already in ACCOUNT_RE format
4201
+ */
4202
+ suggestedSegment: string;
4203
+ /**
4204
+ * Logo URL
4205
+ */
4206
+ logoUrl: string | null;
4207
+ /**
4208
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4209
+ */
4210
+ matchType: 'exact' | 'prefix' | 'substring';
4211
+ };
4212
+ /**
4213
+ * How this row matched: 'exact' > 'prefix' > 'substring'
4214
+ */
4215
+ type matchType = 'exact' | 'prefix' | 'substring';
4216
+ type PlatformMatchResponseDto = {
4217
+ /**
4218
+ * Ranked matches, best tier first (at most 10 rows)
4219
+ */
4220
+ platforms: Array<PlatformMatchResultDto>;
4221
+ /**
4222
+ * Overall match quality — top row's tier, or 'none' when no hits
4223
+ */
4224
+ matchType: 'none' | 'exact' | 'prefix' | 'substring';
4225
+ /**
4226
+ * Total matches before LIMIT (truncation transparency)
4227
+ */
4228
+ total: number;
4229
+ /**
4230
+ * true when total > platforms.length (more matches exist)
4231
+ */
4232
+ hasMore: boolean;
4233
+ };
4234
+ /**
4235
+ * Overall match quality — top row's tier, or 'none' when no hits
4236
+ */
4237
+ type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
3928
4238
  type CreatePlatformDto = {
3929
4239
  /**
3930
4240
  * Platform name
@@ -3955,10 +4265,6 @@ type CreatePlatformDto = {
3955
4265
  */
3956
4266
  isActive?: boolean;
3957
4267
  };
3958
- /**
3959
- * Platform type
3960
- */
3961
- type type3 = 'BANK' | 'BROKERAGE' | 'CRYPTO_EXCHANGE' | 'PAYMENT' | 'INVESTMENT' | 'INSURANCE' | 'OTHER';
3962
4268
  type UpdatePlatformDto = {
3963
4269
  /**
3964
4270
  * Platform name
@@ -4608,195 +4914,165 @@ type HoldingPnlWarningDto = {
4608
4914
  accountId?: {
4609
4915
  [key: string]: unknown;
4610
4916
  } | null;
4611
- currency?: {
4612
- [key: string]: unknown;
4613
- } | null;
4614
- };
4615
- /**
4616
- * Warning type
4617
- */
4618
- type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4619
- type HoldingPnlResponseDto = {
4620
- asOfDate: string;
4621
- baseCurrency: string;
4622
- /**
4623
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4624
- */
4625
- method: 'average' | 'FIFO';
4626
- rows: Array<HoldingPnlRowDto>;
4627
- warnings: Array<HoldingPnlWarningDto>;
4628
- };
4629
- /**
4630
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4631
- */
4632
- type method = 'average' | 'FIFO';
4633
- type CurrencyBalanceDto = {
4634
- /**
4635
- * ISO 4217 currency code
4636
- */
4637
- currency: string;
4638
- /**
4639
- * Balance amount
4640
- */
4641
- balance: string;
4642
- };
4643
- type TimeSeriesPointDto = {
4644
- /**
4645
- * Date in YYYY-MM-DD format
4646
- */
4647
- date: string;
4648
- /**
4649
- * Value at this date (in base currency)
4650
- */
4651
- value: string;
4652
- /**
4653
- * Change from previous point
4654
- */
4655
- change?: {
4656
- [key: string]: unknown;
4657
- };
4658
- /**
4659
- * Total assets at this date (in base currency)
4660
- */
4661
- assets?: string;
4662
- /**
4663
- * Total liabilities at this date (in base currency)
4664
- */
4665
- liabilities?: string;
4666
- /**
4667
- * Multi-currency breakdown for this point
4668
- */
4669
- byCurrency?: Array<CurrencyBalanceDto>;
4670
- };
4671
- type TrendSummaryDto = {
4672
- /**
4673
- * Value at start of period
4674
- */
4675
- startValue: string;
4676
- /**
4677
- * Value at end of period
4678
- */
4679
- endValue: string;
4680
- /**
4681
- * Total change over period
4682
- */
4683
- totalChange: string;
4684
- /**
4685
- * Total change percentage
4686
- */
4687
- totalChangePercentage: string;
4688
- };
4689
- type MultiCurrencyPointDto = {
4690
- /**
4691
- * Date in YYYY-MM-DD format
4692
- */
4693
- date: string;
4694
- /**
4695
- * Balances by currency
4696
- */
4697
- byCurrency: Array<CurrencyBalanceDto>;
4917
+ currency?: {
4918
+ [key: string]: unknown;
4919
+ } | null;
4698
4920
  };
4699
- type PortfolioTrendsResponseDto = {
4921
+ /**
4922
+ * Warning type
4923
+ */
4924
+ type type4 = 'MISSING_COST_FX_RATE' | 'MISSING_MARKET_FX_RATE' | 'MISSING_SALE_PRICE' | 'MISSING_REALIZED_FX_RATE' | 'OVERSOLD_LOTS' | 'NO_PRICE' | 'MIXED_COST_CURRENCY';
4925
+ type HoldingPnlResponseDto = {
4926
+ asOfDate: string;
4927
+ baseCurrency: string;
4700
4928
  /**
4701
- * Time series data points
4929
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4702
4930
  */
4703
- series: Array<TimeSeriesPointDto>;
4931
+ method: 'average' | 'FIFO';
4932
+ rows: Array<HoldingPnlRowDto>;
4933
+ warnings: Array<HoldingPnlWarningDto>;
4934
+ };
4935
+ /**
4936
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
4937
+ */
4938
+ type method = 'average' | 'FIFO';
4939
+ type AnonymousLoginDto = {
4704
4940
  /**
4705
- * Period summary
4941
+ * Access token for anonymous login
4706
4942
  */
4707
- summary: TrendSummaryDto;
4943
+ accessToken: string;
4944
+ };
4945
+ type AnonymousLoginResponseDto = {
4708
4946
  /**
4709
- * Period requested
4947
+ * JWT auth token
4710
4948
  */
4711
- period: string;
4949
+ authToken: string;
4950
+ };
4951
+ type SymbolSearchResultDto = {
4952
+ symbol: string;
4953
+ name?: {
4954
+ [key: string]: unknown;
4955
+ } | null;
4956
+ exchange?: {
4957
+ [key: string]: unknown;
4958
+ } | null;
4712
4959
  /**
4713
- * Data granularity
4960
+ * OpenBB asset_type (e.g. stock, etf)
4714
4961
  */
4715
- granularity: string;
4962
+ assetType?: {
4963
+ [key: string]: unknown;
4964
+ } | null;
4716
4965
  /**
4717
- * Base currency for converted values
4966
+ * IGN asset class (region.types.ts ASSET_CLASSES)
4718
4967
  */
4719
- currency: string;
4968
+ assetClass?: {
4969
+ [key: string]: unknown;
4970
+ } | null;
4720
4971
  /**
4721
- * Multi-currency time series (each point has currency breakdown)
4972
+ * IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
4722
4973
  */
4723
- byCurrency?: Array<MultiCurrencyPointDto>;
4974
+ assetSubClass?: {
4975
+ [key: string]: unknown;
4976
+ } | null;
4724
4977
  /**
4725
- * Exchange rate warnings
4978
+ * Trading currency (extra_data or inferred from exchange)
4726
4979
  */
4727
- warnings?: Array<ExchangeRateWarningDto>;
4980
+ currency?: {
4981
+ [key: string]: unknown;
4982
+ } | null;
4728
4983
  };
4729
- type CashFlowPointDto = {
4730
- /**
4731
- * Month key (YYYY-MM)
4732
- */
4733
- month: string;
4984
+ type SymbolQuoteDto = {
4985
+ symbol?: string;
4986
+ name?: {
4987
+ [key: string]: unknown;
4988
+ } | null;
4989
+ exchange?: {
4990
+ [key: string]: unknown;
4991
+ } | null;
4734
4992
  /**
4735
- * Income in base currency (absolute, converted)
4993
+ * OpenBB asset_type
4736
4994
  */
4737
- income: string;
4995
+ assetType?: {
4996
+ [key: string]: unknown;
4997
+ } | null;
4738
4998
  /**
4739
- * Expense in base currency (absolute, converted)
4999
+ * IGN asset class
4740
5000
  */
4741
- expense: string;
5001
+ assetClass?: {
5002
+ [key: string]: unknown;
5003
+ } | null;
4742
5004
  /**
4743
- * netSavings = income − expense (savings positive)
5005
+ * IGN asset sub-class
4744
5006
  */
4745
- netSavings: string;
4746
- };
4747
- type CashFlowTrendSummaryDto = {
5007
+ assetSubClass?: {
5008
+ [key: string]: unknown;
5009
+ } | null;
4748
5010
  /**
4749
- * Total income across the period
5011
+ * Trading currency (extra_data or inferred from exchange)
4750
5012
  */
4751
- totalIncome: string;
5013
+ currency?: {
5014
+ [key: string]: unknown;
5015
+ } | null;
4752
5016
  /**
4753
- * Total expense across the period
5017
+ * Latest price (Decimal string)
4754
5018
  */
4755
- totalExpense: string;
5019
+ price?: {
5020
+ [key: string]: unknown;
5021
+ } | null;
4756
5022
  /**
4757
- * income expense across the period
5023
+ * Date the price was observed (ISO yyyy-MM-dd)
4758
5024
  */
4759
- totalNetSavings: string;
5025
+ priceDate?: {
5026
+ [key: string]: unknown;
5027
+ } | null;
4760
5028
  /**
4761
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
5029
+ * 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.
4762
5030
  */
4763
- averageMonthlyNetSavings: string;
4764
- };
4765
- type CashFlowTrendsResponseDto = {
5031
+ changePercent?: {
5032
+ [key: string]: unknown;
5033
+ } | null;
4766
5034
  /**
4767
- * Monthly cash-flow series (fixed N-month window, zero-filled)
5035
+ * Previous close (Decimal string)
4768
5036
  */
4769
- series: Array<CashFlowPointDto>;
5037
+ prevClose?: {
5038
+ [key: string]: unknown;
5039
+ } | null;
4770
5040
  /**
4771
- * Period totals
5041
+ * Day open (Decimal string)
4772
5042
  */
4773
- summary: CashFlowTrendSummaryDto;
5043
+ open?: {
5044
+ [key: string]: unknown;
5045
+ } | null;
4774
5046
  /**
4775
- * Period requested
5047
+ * Day high (Decimal string)
4776
5048
  */
4777
- period: string;
5049
+ high?: {
5050
+ [key: string]: unknown;
5051
+ } | null;
4778
5052
  /**
4779
- * Data granularity (v1 returns month buckets)
5053
+ * Day low (Decimal string)
4780
5054
  */
4781
- granularity: string;
5055
+ low?: {
5056
+ [key: string]: unknown;
5057
+ } | null;
4782
5058
  /**
4783
- * Base currency for converted values
5059
+ * Day volume (Decimal string)
4784
5060
  */
4785
- currency: string;
5061
+ volume?: {
5062
+ [key: string]: unknown;
5063
+ } | null;
4786
5064
  /**
4787
- * Exchange rate warnings (e.g. missing rate for a currency)
5065
+ * 52-week high (Decimal string)
4788
5066
  */
4789
- warnings?: Array<ExchangeRateWarningDto>;
4790
- };
4791
- type GenerateSnapshotBody = unknown;
4792
- type GenerateSnapshotResponse = unknown;
4793
- type BackfillSnapshotsBody = unknown;
4794
- type BackfillSnapshotsResponse = unknown;
4795
- type AnonymousLoginDto = {
5067
+ yearHigh?: {
5068
+ [key: string]: unknown;
5069
+ } | null;
4796
5070
  /**
4797
- * Access token for anonymous login
5071
+ * 52-week low (Decimal string)
4798
5072
  */
4799
- accessToken: string;
5073
+ yearLow?: {
5074
+ [key: string]: unknown;
5075
+ } | null;
4800
5076
  };
4801
5077
  type AccountControllerCreateData = {
4802
5078
  /**
@@ -4895,6 +5171,18 @@ type AccountControllerReopenData = {
4895
5171
  requestBody: ReopenAccountDto;
4896
5172
  };
4897
5173
  type AccountControllerReopenResponse = AccountResponseDto;
5174
+ type AccountControllerAddOpeningBalanceData = {
5175
+ /**
5176
+ * Account UUID
5177
+ */
5178
+ id: string;
5179
+ /**
5180
+ * Region code for tenant context
5181
+ */
5182
+ region: 'cn' | 'us' | 'de' | 'gb';
5183
+ requestBody: CreateOpeningBalanceDto;
5184
+ };
5185
+ type AccountControllerAddOpeningBalanceResponse = OpeningBalanceResultDto;
4898
5186
  type AccountStandardsControllerGetTemplatesData = {
4899
5187
  /**
4900
5188
  * Region code (cn, us, de)
@@ -5591,61 +5879,175 @@ type ExpectedTransactionControllerSkipData = {
5591
5879
  type ExpectedTransactionControllerSkipResponse = ExpectedTransactionResponseDto;
5592
5880
  type ExpectedTransactionControllerUndoSkipData = {
5593
5881
  /**
5594
- * Expected transaction ID
5882
+ * Expected transaction ID
5883
+ */
5884
+ id: string;
5885
+ /**
5886
+ * Region code for tenant context
5887
+ */
5888
+ region: 'cn' | 'us' | 'de' | 'gb';
5889
+ };
5890
+ type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
5891
+ type ExpectedTransactionControllerConfirmMatchData = {
5892
+ /**
5893
+ * Expected transaction ID
5894
+ */
5895
+ id: string;
5896
+ /**
5897
+ * Region code for tenant context
5898
+ */
5899
+ region: 'cn' | 'us' | 'de' | 'gb';
5900
+ requestBody: ConfirmMatchDto;
5901
+ };
5902
+ type ExpectedTransactionControllerConfirmMatchResponse = unknown;
5903
+ type ExpectedTransactionControllerUnmatchData = {
5904
+ /**
5905
+ * Expected transaction ID
5906
+ */
5907
+ id: string;
5908
+ /**
5909
+ * Region code for tenant context
5910
+ */
5911
+ region: 'cn' | 'us' | 'de' | 'gb';
5912
+ };
5913
+ type ExpectedTransactionControllerUnmatchResponse = unknown;
5914
+ type ExpectedTransactionControllerEnterNowData = {
5915
+ /**
5916
+ * Expected transaction ID
5917
+ */
5918
+ id: string;
5919
+ /**
5920
+ * Region code for tenant context
5921
+ */
5922
+ region: 'cn' | 'us' | 'de' | 'gb';
5923
+ requestBody: EnterNowDto;
5924
+ };
5925
+ type ExpectedTransactionControllerEnterNowResponse = unknown;
5926
+ type ForecastControllerGetForecastData = {
5927
+ /**
5928
+ * Number of months to forecast (1-12, default 3)
5929
+ */
5930
+ months?: number;
5931
+ /**
5932
+ * Region code for tenant context
5933
+ */
5934
+ region: 'cn' | 'us' | 'de' | 'gb';
5935
+ };
5936
+ type ForecastControllerGetForecastResponse = ForecastResponseDto;
5937
+ type ReportingControllerGetPortfolioTrendsData = {
5938
+ /**
5939
+ * Data granularity
5940
+ */
5941
+ granularity?: 'day' | 'week' | 'month';
5942
+ /**
5943
+ * Time period
5944
+ */
5945
+ period?: '1m' | '3m' | '6m' | '1y';
5946
+ /**
5947
+ * Region code for tenant context
5948
+ */
5949
+ region: 'cn' | 'us' | 'de' | 'gb';
5950
+ };
5951
+ type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
5952
+ type ReportingControllerGetCashFlowTrendsData = {
5953
+ /**
5954
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
5955
+ */
5956
+ granularity?: 'day' | 'week' | 'month';
5957
+ /**
5958
+ * Time period
5959
+ */
5960
+ period?: '1m' | '3m' | '6m' | '1y';
5961
+ /**
5962
+ * Region code for tenant context
5963
+ */
5964
+ region: 'cn' | 'us' | 'de' | 'gb';
5965
+ };
5966
+ type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
5967
+ type ReportingControllerGenerateSnapshotData = {
5968
+ /**
5969
+ * Region code for tenant context
5970
+ */
5971
+ region: 'cn' | 'us' | 'de' | 'gb';
5972
+ /**
5973
+ * Optional date (defaults to today)
5974
+ */
5975
+ requestBody: GenerateSnapshotBody;
5976
+ };
5977
+ type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
5978
+ type ReportingControllerBackfillSnapshotsData = {
5979
+ /**
5980
+ * Region code for tenant context
5981
+ */
5982
+ region: 'cn' | 'us' | 'de' | 'gb';
5983
+ requestBody: BackfillSnapshotsBody;
5984
+ };
5985
+ type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
5986
+ type UserControllerDeleteOwnUserData = {
5987
+ requestBody: DeleteOwnUserDto;
5988
+ };
5989
+ type UserControllerDeleteOwnUserResponse = void;
5990
+ type UserControllerGetUserData = {
5991
+ acceptLanguage: string;
5992
+ };
5993
+ type UserControllerGetUserResponse = unknown;
5994
+ type UserControllerSignupUserData = {
5995
+ requestBody: SignupDto;
5996
+ };
5997
+ type UserControllerSignupUserResponse = SignupResponseDto;
5998
+ type UserControllerDeleteUserData = {
5999
+ /**
6000
+ * User ID to delete
5595
6001
  */
5596
6002
  id: string;
5597
- /**
5598
- * Region code for tenant context
5599
- */
5600
- region: 'cn' | 'us' | 'de' | 'gb';
5601
6003
  };
5602
- type ExpectedTransactionControllerUndoSkipResponse = ExpectedTransactionResponseDto;
5603
- type ExpectedTransactionControllerConfirmMatchData = {
6004
+ type UserControllerDeleteUserResponse = void;
6005
+ type UserControllerGetUserInfoData = {
5604
6006
  /**
5605
- * Expected transaction ID
6007
+ * User ID
5606
6008
  */
5607
6009
  id: string;
5608
- /**
5609
- * Region code for tenant context
5610
- */
5611
- region: 'cn' | 'us' | 'de' | 'gb';
5612
- requestBody: ConfirmMatchDto;
5613
6010
  };
5614
- type ExpectedTransactionControllerConfirmMatchResponse = unknown;
5615
- type ExpectedTransactionControllerUnmatchData = {
6011
+ type UserControllerGetUserInfoResponse = unknown;
6012
+ type UserControllerUpdateUserSettingData = {
6013
+ requestBody: UpdateUserSettingDto;
6014
+ };
6015
+ type UserControllerUpdateUserSettingResponse = unknown;
6016
+ type UserControllerGetAllUserSettingsByPageData = {
5616
6017
  /**
5617
- * Expected transaction ID
6018
+ * Page number
5618
6019
  */
5619
- id: string;
6020
+ pageNo: number;
5620
6021
  /**
5621
- * Region code for tenant context
6022
+ * Page size
5622
6023
  */
5623
- region: 'cn' | 'us' | 'de' | 'gb';
6024
+ pageSize: number;
5624
6025
  };
5625
- type ExpectedTransactionControllerUnmatchResponse = unknown;
5626
- type ExpectedTransactionControllerEnterNowData = {
5627
- /**
5628
- * Expected transaction ID
5629
- */
5630
- id: string;
6026
+ type UserControllerGetAllUserSettingsByPageResponse = unknown;
6027
+ type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6028
+ type PropertyControllerGetAllResponse = unknown;
6029
+ type PropertyControllerGetByKeyData = {
5631
6030
  /**
5632
- * Region code for tenant context
6031
+ * Property key
5633
6032
  */
5634
- region: 'cn' | 'us' | 'de' | 'gb';
5635
- requestBody: EnterNowDto;
6033
+ key: string;
5636
6034
  };
5637
- type ExpectedTransactionControllerEnterNowResponse = unknown;
5638
- type ForecastControllerGetForecastData = {
6035
+ type PropertyControllerGetByKeyResponse = unknown;
6036
+ type PropertyControllerUpdateData = {
5639
6037
  /**
5640
- * Number of months to forecast (1-12, default 3)
6038
+ * Property key
5641
6039
  */
5642
- months?: number;
6040
+ key: string;
6041
+ requestBody: UpdatePropertyDto;
6042
+ };
6043
+ type PropertyControllerUpdateResponse = unknown;
6044
+ type PropertyControllerDeleteData = {
5643
6045
  /**
5644
- * Region code for tenant context
6046
+ * Property key
5645
6047
  */
5646
- region: 'cn' | 'us' | 'de' | 'gb';
6048
+ key: string;
5647
6049
  };
5648
- type ForecastControllerGetForecastResponse = ForecastResponseDto;
6050
+ type PropertyControllerDeleteResponse = void;
5649
6051
  type TransactionRuleControllerCreateData = {
5650
6052
  /**
5651
6053
  * Region code for tenant context
@@ -5765,71 +6167,6 @@ type TransactionRuleControllerTestData = {
5765
6167
  ruleId: string;
5766
6168
  };
5767
6169
  type TransactionRuleControllerTestResponse = TestRuleResponseDto;
5768
- type UserControllerDeleteOwnUserData = {
5769
- requestBody: DeleteOwnUserDto;
5770
- };
5771
- type UserControllerDeleteOwnUserResponse = void;
5772
- type UserControllerGetUserData = {
5773
- acceptLanguage: string;
5774
- };
5775
- type UserControllerGetUserResponse = unknown;
5776
- type UserControllerSignupUserData = {
5777
- requestBody: SignupDto;
5778
- };
5779
- type UserControllerSignupUserResponse = unknown;
5780
- type UserControllerDeleteUserData = {
5781
- /**
5782
- * User ID to delete
5783
- */
5784
- id: string;
5785
- };
5786
- type UserControllerDeleteUserResponse = void;
5787
- type UserControllerGetUserInfoData = {
5788
- /**
5789
- * User ID
5790
- */
5791
- id: string;
5792
- };
5793
- type UserControllerGetUserInfoResponse = unknown;
5794
- type UserControllerUpdateUserSettingData = {
5795
- requestBody: UpdateUserSettingDto;
5796
- };
5797
- type UserControllerUpdateUserSettingResponse = unknown;
5798
- type UserControllerGetAllUserSettingsByPageData = {
5799
- /**
5800
- * Page number
5801
- */
5802
- pageNo: number;
5803
- /**
5804
- * Page size
5805
- */
5806
- pageSize: number;
5807
- };
5808
- type UserControllerGetAllUserSettingsByPageResponse = unknown;
5809
- type UserControllerGetAssetLiabilitySummaryResponse = unknown;
5810
- type PropertyControllerGetAllResponse = unknown;
5811
- type PropertyControllerGetByKeyData = {
5812
- /**
5813
- * Property key
5814
- */
5815
- key: string;
5816
- };
5817
- type PropertyControllerGetByKeyResponse = unknown;
5818
- type PropertyControllerUpdateData = {
5819
- /**
5820
- * Property key
5821
- */
5822
- key: string;
5823
- requestBody: UpdatePropertyDto;
5824
- };
5825
- type PropertyControllerUpdateResponse = unknown;
5826
- type PropertyControllerDeleteData = {
5827
- /**
5828
- * Property key
5829
- */
5830
- key: string;
5831
- };
5832
- type PropertyControllerDeleteResponse = void;
5833
6170
  type EventControllerCreateData = {
5834
6171
  /**
5835
6172
  * Region code for tenant context (decorative for life events)
@@ -6165,7 +6502,7 @@ type PlatformControllerCreateData = {
6165
6502
  requestBody: CreatePlatformDto;
6166
6503
  };
6167
6504
  type PlatformControllerCreateResponse = unknown;
6168
- type PlatformControllerGetPlatformListResponse = unknown;
6505
+ type PlatformControllerGetPlatformListResponse = Array<PlatformListItemDto>;
6169
6506
  type PlatformControllerMatchPlatformsData = {
6170
6507
  /**
6171
6508
  * Search query — Chinese name, English name, or abbreviation
@@ -6176,7 +6513,7 @@ type PlatformControllerMatchPlatformsData = {
6176
6513
  */
6177
6514
  region?: string;
6178
6515
  };
6179
- type PlatformControllerMatchPlatformsResponse = unknown;
6516
+ type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
6180
6517
  type PlatformControllerUpdateData = {
6181
6518
  /**
6182
6519
  * Platform ID
@@ -6271,60 +6608,11 @@ type HoldingPnlControllerGetHoldingPnlData = {
6271
6608
  region: 'cn' | 'us' | 'de' | 'gb';
6272
6609
  };
6273
6610
  type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
6274
- type ReportingControllerGetPortfolioTrendsData = {
6275
- /**
6276
- * Data granularity
6277
- */
6278
- granularity?: 'day' | 'week' | 'month';
6279
- /**
6280
- * Time period
6281
- */
6282
- period?: '1m' | '3m' | '6m' | '1y';
6283
- /**
6284
- * Region code for tenant context
6285
- */
6286
- region: 'cn' | 'us' | 'de' | 'gb';
6287
- };
6288
- type ReportingControllerGetPortfolioTrendsResponse = PortfolioTrendsResponseDto;
6289
- type ReportingControllerGetCashFlowTrendsData = {
6290
- /**
6291
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
6292
- */
6293
- granularity?: 'day' | 'week' | 'month';
6294
- /**
6295
- * Time period
6296
- */
6297
- period?: '1m' | '3m' | '6m' | '1y';
6298
- /**
6299
- * Region code for tenant context
6300
- */
6301
- region: 'cn' | 'us' | 'de' | 'gb';
6302
- };
6303
- type ReportingControllerGetCashFlowTrendsResponse = CashFlowTrendsResponseDto;
6304
- type ReportingControllerGenerateSnapshotData = {
6305
- /**
6306
- * Region code for tenant context
6307
- */
6308
- region: 'cn' | 'us' | 'de' | 'gb';
6309
- /**
6310
- * Optional date (defaults to today)
6311
- */
6312
- requestBody: GenerateSnapshotBody;
6313
- };
6314
- type ReportingControllerGenerateSnapshotResponse = GenerateSnapshotResponse;
6315
- type ReportingControllerBackfillSnapshotsData = {
6316
- /**
6317
- * Region code for tenant context
6318
- */
6319
- region: 'cn' | 'us' | 'de' | 'gb';
6320
- requestBody: BackfillSnapshotsBody;
6321
- };
6322
- type ReportingControllerBackfillSnapshotsResponse = BackfillSnapshotsResponse;
6323
6611
  type ApiKeysControllerCreateApiKeyResponse = unknown;
6324
6612
  type AuthControllerAccessTokenLoginData = {
6325
6613
  requestBody: AnonymousLoginDto;
6326
6614
  };
6327
- type AuthControllerAccessTokenLoginResponse = unknown;
6615
+ type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
6328
6616
  type CacheControllerFlushCacheResponse = unknown;
6329
6617
  type ExchangeRateControllerGetExchangeRateData = {
6330
6618
  /**
@@ -6351,6 +6639,29 @@ type HealthControllerResetCircuitBreakerData = {
6351
6639
  type HealthControllerResetCircuitBreakerResponse = unknown;
6352
6640
  type HealthControllerGetMetricsResponse = unknown;
6353
6641
  type InfoControllerGetInfoResponse = unknown;
6642
+ type SymbolControllerSearchData = {
6643
+ /**
6644
+ * Filter by OpenBB asset_type (e.g. stock, etf)
6645
+ */
6646
+ assetType?: string;
6647
+ /**
6648
+ * Filter by exchange code (e.g. US, HK, SS, SZ)
6649
+ */
6650
+ exchange?: string;
6651
+ /**
6652
+ * Maximum number of results (clamped 1..50)
6653
+ */
6654
+ limit?: number;
6655
+ /**
6656
+ * Search term — matched against symbol and instrument name. Empty string returns [].
6657
+ */
6658
+ q: string;
6659
+ };
6660
+ type SymbolControllerSearchResponse = Array<SymbolSearchResultDto>;
6661
+ type SymbolControllerGetQuoteData = {
6662
+ symbol: string;
6663
+ };
6664
+ type SymbolControllerGetQuoteResponse = SymbolQuoteDto;
6354
6665
  type $OpenApiTs = {
6355
6666
  '/api/v1/{region}/bean/accounts': {
6356
6667
  post: {
@@ -6415,7 +6726,7 @@ type $OpenApiTs = {
6415
6726
  */
6416
6727
  404: unknown;
6417
6728
  /**
6418
- * Account has transactions and cannot be deleted
6729
+ * Account has active transactions and cannot be deleted
6419
6730
  */
6420
6731
  409: unknown;
6421
6732
  };
@@ -6459,6 +6770,25 @@ type $OpenApiTs = {
6459
6770
  };
6460
6771
  };
6461
6772
  };
6773
+ '/api/v1/{region}/bean/accounts/{id}/opening-balance': {
6774
+ post: {
6775
+ req: AccountControllerAddOpeningBalanceData;
6776
+ res: {
6777
+ /**
6778
+ * Opening-balance transaction created
6779
+ */
6780
+ 201: OpeningBalanceResultDto;
6781
+ /**
6782
+ * Account not found
6783
+ */
6784
+ 404: unknown;
6785
+ /**
6786
+ * An opening balance already exists for this account
6787
+ */
6788
+ 409: unknown;
6789
+ };
6790
+ };
6791
+ };
6462
6792
  '/api/v1/{region}/bean/account-standards': {
6463
6793
  get: {
6464
6794
  req: AccountStandardsControllerGetTemplatesData;
@@ -7395,403 +7725,475 @@ type $OpenApiTs = {
7395
7725
  req: ForecastControllerGetForecastData;
7396
7726
  res: {
7397
7727
  /**
7398
- * Forecast retrieved successfully
7728
+ * Forecast retrieved successfully
7729
+ */
7730
+ 200: ForecastResponseDto;
7731
+ };
7732
+ };
7733
+ };
7734
+ '/api/v1/{region}/reporting/portfolio/trends': {
7735
+ get: {
7736
+ req: ReportingControllerGetPortfolioTrendsData;
7737
+ res: {
7738
+ /**
7739
+ * Trends retrieved successfully
7740
+ */
7741
+ 200: PortfolioTrendsResponseDto;
7742
+ /**
7743
+ * User not authenticated
7744
+ */
7745
+ 401: unknown;
7746
+ };
7747
+ };
7748
+ };
7749
+ '/api/v1/{region}/reporting/cash-flow/trends': {
7750
+ get: {
7751
+ req: ReportingControllerGetCashFlowTrendsData;
7752
+ res: {
7753
+ /**
7754
+ * Cash-flow trends retrieved successfully
7755
+ */
7756
+ 200: CashFlowTrendsResponseDto;
7757
+ /**
7758
+ * User not authenticated
7759
+ */
7760
+ 401: unknown;
7761
+ };
7762
+ };
7763
+ };
7764
+ '/api/v1/{region}/reporting/snapshots/generate': {
7765
+ post: {
7766
+ req: ReportingControllerGenerateSnapshotData;
7767
+ res: {
7768
+ /**
7769
+ * Snapshot generated successfully
7770
+ */
7771
+ 200: GenerateSnapshotResponse;
7772
+ /**
7773
+ * Invalid date format
7774
+ */
7775
+ 400: unknown;
7776
+ /**
7777
+ * User not authenticated
7399
7778
  */
7400
- 200: ForecastResponseDto;
7779
+ 401: unknown;
7401
7780
  };
7402
7781
  };
7403
7782
  };
7404
- '/api/v1/{region}/bean/transaction-rules': {
7783
+ '/api/v1/{region}/reporting/snapshots/backfill': {
7405
7784
  post: {
7406
- req: TransactionRuleControllerCreateData;
7785
+ req: ReportingControllerBackfillSnapshotsData;
7407
7786
  res: {
7408
7787
  /**
7409
- * Rule updated successfully (upsert mode)
7788
+ * Backfill completed successfully
7410
7789
  */
7411
- 200: TransactionRuleResponseDto;
7790
+ 200: BackfillSnapshotsResponse;
7412
7791
  /**
7413
- * Validation failed
7792
+ * Invalid date format or range
7414
7793
  */
7415
- 400: ApiProblemResponseDto;
7794
+ 400: unknown;
7416
7795
  /**
7417
- * Unauthorized
7796
+ * User not authenticated
7418
7797
  */
7419
- 401: ApiProblemResponseDto;
7798
+ 401: unknown;
7420
7799
  /**
7421
- * Resource conflict - another process is updating this rule
7800
+ * Backfill already in progress for this user
7422
7801
  */
7423
- 409: ApiProblemResponseDto;
7802
+ 409: unknown;
7424
7803
  };
7425
7804
  };
7426
- get: {
7427
- req: TransactionRuleControllerListData;
7805
+ };
7806
+ '/api/v1/users': {
7807
+ delete: {
7808
+ req: UserControllerDeleteOwnUserData;
7428
7809
  res: {
7429
7810
  /**
7430
- * List of rules
7811
+ * User deleted successfully
7431
7812
  */
7432
- 200: TransactionRuleListResponseDto;
7813
+ 204: void;
7433
7814
  /**
7434
- * Unauthorized
7815
+ * Invalid access token
7435
7816
  */
7436
- 401: ApiProblemResponseDto;
7817
+ 403: unknown;
7437
7818
  };
7438
7819
  };
7439
- };
7440
- '/api/v1/{region}/bean/transaction-rules/validate': {
7441
- post: {
7442
- req: TransactionRuleControllerValidateData;
7820
+ get: {
7821
+ req: UserControllerGetUserData;
7443
7822
  res: {
7444
7823
  /**
7445
- * Validation result
7446
- */
7447
- 200: ValidateRuleResponseDto;
7448
- /**
7449
- * Validation failed
7450
- */
7451
- 400: ApiProblemResponseDto;
7452
- /**
7453
- * Unauthorized
7824
+ * User retrieved successfully
7454
7825
  */
7455
- 401: ApiProblemResponseDto;
7826
+ 200: unknown;
7456
7827
  };
7457
7828
  };
7458
- };
7459
- '/api/v1/{region}/bean/transaction-rules/bulk': {
7460
7829
  post: {
7461
- req: TransactionRuleControllerBulkCreateData;
7830
+ req: UserControllerSignupUserData;
7462
7831
  res: {
7463
7832
  /**
7464
- * Bulk create completed
7833
+ * User created successfully
7465
7834
  */
7466
- 201: BulkCreateRulesResponseDto;
7835
+ 201: SignupResponseDto;
7467
7836
  /**
7468
- * Invalid bulk create data
7837
+ * Invalid Turnstile token (when Turnstile is enabled)
7469
7838
  */
7470
- 400: ApiProblemResponseDto;
7839
+ 400: unknown;
7471
7840
  /**
7472
- * Unauthorized
7841
+ * User signup is disabled
7473
7842
  */
7474
- 401: ApiProblemResponseDto;
7843
+ 403: unknown;
7475
7844
  };
7476
7845
  };
7477
7846
  };
7478
- '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7479
- get: {
7480
- req: TransactionRuleControllerExportData;
7847
+ '/api/v1/users/{id}': {
7848
+ delete: {
7849
+ req: UserControllerDeleteUserData;
7481
7850
  res: {
7482
7851
  /**
7483
- * Exported rules
7484
- */
7485
- 200: ExportRulesResponseDto;
7486
- /**
7487
- * Unsupported format
7852
+ * User deleted successfully
7488
7853
  */
7489
- 400: ApiProblemResponseDto;
7854
+ 204: void;
7490
7855
  /**
7491
- * Unauthorized
7856
+ * Cannot delete own account or insufficient permissions
7492
7857
  */
7493
- 401: ApiProblemResponseDto;
7858
+ 403: unknown;
7494
7859
  };
7495
7860
  };
7496
7861
  };
7497
- '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7862
+ '/api/v1/users/{id}/info': {
7498
7863
  get: {
7499
- req: TransactionRuleControllerGetStatisticsData;
7864
+ req: UserControllerGetUserInfoData;
7500
7865
  res: {
7501
7866
  /**
7502
- * Rule statistics
7867
+ * User info retrieved successfully
7503
7868
  */
7504
- 200: RuleStatisticsResponseDto;
7869
+ 200: unknown;
7505
7870
  /**
7506
- * Unauthorized
7871
+ * Cannot access other user info without admin permission
7507
7872
  */
7508
- 401: ApiProblemResponseDto;
7873
+ 403: unknown;
7509
7874
  };
7510
7875
  };
7511
7876
  };
7512
- '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7513
- get: {
7514
- req: TransactionRuleControllerGetDetailData;
7877
+ '/api/v1/users/setting': {
7878
+ put: {
7879
+ req: UserControllerUpdateUserSettingData;
7515
7880
  res: {
7516
7881
  /**
7517
- * Rule details
7518
- */
7519
- 200: TransactionRuleResponseDto;
7520
- /**
7521
- * Unauthorized
7882
+ * Settings updated successfully
7522
7883
  */
7523
- 401: ApiProblemResponseDto;
7884
+ 200: unknown;
7524
7885
  /**
7525
- * Forbidden - not owner of rule
7886
+ * Insufficient permissions
7526
7887
  */
7527
- 403: ApiProblemResponseDto;
7888
+ 403: unknown;
7889
+ };
7890
+ };
7891
+ };
7892
+ '/api/v1/users/settings-by-page': {
7893
+ get: {
7894
+ req: UserControllerGetAllUserSettingsByPageData;
7895
+ res: {
7528
7896
  /**
7529
- * Rule not found
7897
+ * Settings list retrieved successfully
7530
7898
  */
7531
- 404: ApiProblemResponseDto;
7899
+ 200: unknown;
7532
7900
  };
7533
7901
  };
7534
- put: {
7535
- req: TransactionRuleControllerUpdateData;
7902
+ };
7903
+ '/api/v1/users/asset-liability-summary': {
7904
+ get: {
7536
7905
  res: {
7537
7906
  /**
7538
- * Rule updated successfully
7907
+ * Summary retrieved successfully
7539
7908
  */
7540
- 200: TransactionRuleResponseDto;
7909
+ 200: unknown;
7910
+ };
7911
+ };
7912
+ };
7913
+ '/api/v1/admin/properties': {
7914
+ get: {
7915
+ res: {
7541
7916
  /**
7542
- * Validation failed
7917
+ * Properties retrieved successfully
7543
7918
  */
7544
- 400: ApiProblemResponseDto;
7919
+ 200: unknown;
7545
7920
  /**
7546
7921
  * Unauthorized
7547
7922
  */
7548
- 401: ApiProblemResponseDto;
7549
- /**
7550
- * Forbidden - not owner of rule
7551
- */
7552
- 403: ApiProblemResponseDto;
7553
- /**
7554
- * Rule not found
7555
- */
7556
- 404: ApiProblemResponseDto;
7923
+ 401: unknown;
7557
7924
  /**
7558
- * Resource conflict - rule is being modified by another process
7925
+ * Forbidden - insufficient permissions
7559
7926
  */
7560
- 409: ApiProblemResponseDto;
7927
+ 403: unknown;
7561
7928
  };
7562
7929
  };
7563
- delete: {
7564
- req: TransactionRuleControllerDeleteData;
7930
+ };
7931
+ '/api/v1/admin/properties/{key}': {
7932
+ get: {
7933
+ req: PropertyControllerGetByKeyData;
7565
7934
  res: {
7566
7935
  /**
7567
- * Rule deleted successfully
7936
+ * Property retrieved successfully
7568
7937
  */
7569
- 204: void;
7938
+ 200: unknown;
7570
7939
  /**
7571
7940
  * Unauthorized
7572
7941
  */
7573
- 401: ApiProblemResponseDto;
7574
- /**
7575
- * Forbidden - not owner of rule
7576
- */
7577
- 403: ApiProblemResponseDto;
7942
+ 401: unknown;
7578
7943
  /**
7579
- * Rule not found
7944
+ * Forbidden - insufficient permissions
7580
7945
  */
7581
- 404: ApiProblemResponseDto;
7946
+ 403: unknown;
7582
7947
  /**
7583
- * Resource conflict - rule is being modified by another process
7948
+ * Property not found
7584
7949
  */
7585
- 409: ApiProblemResponseDto;
7950
+ 404: unknown;
7586
7951
  };
7587
7952
  };
7588
- };
7589
- '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
7590
- post: {
7591
- req: TransactionRuleControllerTestData;
7953
+ put: {
7954
+ req: PropertyControllerUpdateData;
7592
7955
  res: {
7593
7956
  /**
7594
- * Test result
7957
+ * Property updated successfully
7595
7958
  */
7596
- 200: TestRuleResponseDto;
7959
+ 200: unknown;
7597
7960
  /**
7598
7961
  * Unauthorized
7599
7962
  */
7600
- 401: ApiProblemResponseDto;
7601
- /**
7602
- * Forbidden - not owner of rule
7603
- */
7604
- 403: ApiProblemResponseDto;
7963
+ 401: unknown;
7605
7964
  /**
7606
- * Rule not found
7965
+ * Forbidden - insufficient permissions
7607
7966
  */
7608
- 404: ApiProblemResponseDto;
7967
+ 403: unknown;
7609
7968
  };
7610
7969
  };
7611
- };
7612
- '/api/v1/users': {
7613
7970
  delete: {
7614
- req: UserControllerDeleteOwnUserData;
7971
+ req: PropertyControllerDeleteData;
7615
7972
  res: {
7616
7973
  /**
7617
- * User deleted successfully
7974
+ * Property deleted successfully
7618
7975
  */
7619
7976
  204: void;
7620
7977
  /**
7621
- * Invalid access token
7978
+ * Unauthorized
7979
+ */
7980
+ 401: unknown;
7981
+ /**
7982
+ * Forbidden - insufficient permissions
7622
7983
  */
7623
7984
  403: unknown;
7624
- };
7625
- };
7626
- get: {
7627
- req: UserControllerGetUserData;
7628
- res: {
7629
7985
  /**
7630
- * User retrieved successfully
7986
+ * Property not found
7631
7987
  */
7632
- 200: unknown;
7988
+ 404: unknown;
7633
7989
  };
7634
7990
  };
7991
+ };
7992
+ '/api/v1/{region}/bean/transaction-rules': {
7635
7993
  post: {
7636
- req: UserControllerSignupUserData;
7994
+ req: TransactionRuleControllerCreateData;
7637
7995
  res: {
7638
7996
  /**
7639
- * User created successfully
7997
+ * Rule updated successfully (upsert mode)
7640
7998
  */
7641
- 201: unknown;
7999
+ 200: TransactionRuleResponseDto;
7642
8000
  /**
7643
- * Invalid Turnstile token (when Turnstile is enabled)
8001
+ * Validation failed
7644
8002
  */
7645
- 400: unknown;
8003
+ 400: ApiProblemResponseDto;
7646
8004
  /**
7647
- * User signup is disabled
8005
+ * Unauthorized
7648
8006
  */
7649
- 403: unknown;
8007
+ 401: ApiProblemResponseDto;
8008
+ /**
8009
+ * Resource conflict - another process is updating this rule
8010
+ */
8011
+ 409: ApiProblemResponseDto;
7650
8012
  };
7651
8013
  };
7652
- };
7653
- '/api/v1/users/{id}': {
7654
- delete: {
7655
- req: UserControllerDeleteUserData;
8014
+ get: {
8015
+ req: TransactionRuleControllerListData;
7656
8016
  res: {
7657
8017
  /**
7658
- * User deleted successfully
8018
+ * List of rules
7659
8019
  */
7660
- 204: void;
8020
+ 200: TransactionRuleListResponseDto;
7661
8021
  /**
7662
- * Cannot delete own account or insufficient permissions
8022
+ * Unauthorized
7663
8023
  */
7664
- 403: unknown;
8024
+ 401: ApiProblemResponseDto;
7665
8025
  };
7666
8026
  };
7667
8027
  };
7668
- '/api/v1/users/{id}/info': {
7669
- get: {
7670
- req: UserControllerGetUserInfoData;
8028
+ '/api/v1/{region}/bean/transaction-rules/validate': {
8029
+ post: {
8030
+ req: TransactionRuleControllerValidateData;
7671
8031
  res: {
7672
8032
  /**
7673
- * User info retrieved successfully
8033
+ * Validation result
7674
8034
  */
7675
- 200: unknown;
8035
+ 200: ValidateRuleResponseDto;
7676
8036
  /**
7677
- * Cannot access other user info without admin permission
8037
+ * Validation failed
7678
8038
  */
7679
- 403: unknown;
8039
+ 400: ApiProblemResponseDto;
8040
+ /**
8041
+ * Unauthorized
8042
+ */
8043
+ 401: ApiProblemResponseDto;
7680
8044
  };
7681
8045
  };
7682
8046
  };
7683
- '/api/v1/users/setting': {
7684
- put: {
7685
- req: UserControllerUpdateUserSettingData;
8047
+ '/api/v1/{region}/bean/transaction-rules/bulk': {
8048
+ post: {
8049
+ req: TransactionRuleControllerBulkCreateData;
7686
8050
  res: {
7687
8051
  /**
7688
- * Settings updated successfully
8052
+ * Bulk create completed
7689
8053
  */
7690
- 200: unknown;
8054
+ 201: BulkCreateRulesResponseDto;
7691
8055
  /**
7692
- * Insufficient permissions
8056
+ * Invalid bulk create data
7693
8057
  */
7694
- 403: unknown;
8058
+ 400: ApiProblemResponseDto;
8059
+ /**
8060
+ * Unauthorized
8061
+ */
8062
+ 401: ApiProblemResponseDto;
7695
8063
  };
7696
8064
  };
7697
8065
  };
7698
- '/api/v1/users/settings-by-page': {
8066
+ '/api/v1/{region}/bean/transaction-rules/export/{format}': {
7699
8067
  get: {
7700
- req: UserControllerGetAllUserSettingsByPageData;
8068
+ req: TransactionRuleControllerExportData;
7701
8069
  res: {
7702
8070
  /**
7703
- * Settings list retrieved successfully
8071
+ * Exported rules
7704
8072
  */
7705
- 200: unknown;
8073
+ 200: ExportRulesResponseDto;
8074
+ /**
8075
+ * Unsupported format
8076
+ */
8077
+ 400: ApiProblemResponseDto;
8078
+ /**
8079
+ * Unauthorized
8080
+ */
8081
+ 401: ApiProblemResponseDto;
7706
8082
  };
7707
8083
  };
7708
8084
  };
7709
- '/api/v1/users/asset-liability-summary': {
8085
+ '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
7710
8086
  get: {
8087
+ req: TransactionRuleControllerGetStatisticsData;
7711
8088
  res: {
7712
8089
  /**
7713
- * Summary retrieved successfully
8090
+ * Rule statistics
7714
8091
  */
7715
- 200: unknown;
8092
+ 200: RuleStatisticsResponseDto;
8093
+ /**
8094
+ * Unauthorized
8095
+ */
8096
+ 401: ApiProblemResponseDto;
7716
8097
  };
7717
8098
  };
7718
8099
  };
7719
- '/api/v1/admin/properties': {
8100
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
7720
8101
  get: {
8102
+ req: TransactionRuleControllerGetDetailData;
7721
8103
  res: {
7722
8104
  /**
7723
- * Properties retrieved successfully
8105
+ * Rule details
7724
8106
  */
7725
- 200: unknown;
8107
+ 200: TransactionRuleResponseDto;
7726
8108
  /**
7727
8109
  * Unauthorized
7728
8110
  */
7729
- 401: unknown;
8111
+ 401: ApiProblemResponseDto;
7730
8112
  /**
7731
- * Forbidden - insufficient permissions
8113
+ * Forbidden - not owner of rule
7732
8114
  */
7733
- 403: unknown;
8115
+ 403: ApiProblemResponseDto;
8116
+ /**
8117
+ * Rule not found
8118
+ */
8119
+ 404: ApiProblemResponseDto;
7734
8120
  };
7735
8121
  };
7736
- };
7737
- '/api/v1/admin/properties/{key}': {
7738
- get: {
7739
- req: PropertyControllerGetByKeyData;
8122
+ put: {
8123
+ req: TransactionRuleControllerUpdateData;
7740
8124
  res: {
7741
8125
  /**
7742
- * Property retrieved successfully
8126
+ * Rule updated successfully
7743
8127
  */
7744
- 200: unknown;
8128
+ 200: TransactionRuleResponseDto;
8129
+ /**
8130
+ * Validation failed
8131
+ */
8132
+ 400: ApiProblemResponseDto;
7745
8133
  /**
7746
8134
  * Unauthorized
7747
8135
  */
7748
- 401: unknown;
8136
+ 401: ApiProblemResponseDto;
7749
8137
  /**
7750
- * Forbidden - insufficient permissions
8138
+ * Forbidden - not owner of rule
7751
8139
  */
7752
- 403: unknown;
8140
+ 403: ApiProblemResponseDto;
7753
8141
  /**
7754
- * Property not found
8142
+ * Rule not found
7755
8143
  */
7756
- 404: unknown;
8144
+ 404: ApiProblemResponseDto;
8145
+ /**
8146
+ * Resource conflict - rule is being modified by another process
8147
+ */
8148
+ 409: ApiProblemResponseDto;
7757
8149
  };
7758
8150
  };
7759
- put: {
7760
- req: PropertyControllerUpdateData;
8151
+ delete: {
8152
+ req: TransactionRuleControllerDeleteData;
7761
8153
  res: {
7762
8154
  /**
7763
- * Property updated successfully
8155
+ * Rule deleted successfully
7764
8156
  */
7765
- 200: unknown;
8157
+ 204: void;
7766
8158
  /**
7767
8159
  * Unauthorized
7768
8160
  */
7769
- 401: unknown;
8161
+ 401: ApiProblemResponseDto;
7770
8162
  /**
7771
- * Forbidden - insufficient permissions
8163
+ * Forbidden - not owner of rule
7772
8164
  */
7773
- 403: unknown;
8165
+ 403: ApiProblemResponseDto;
8166
+ /**
8167
+ * Rule not found
8168
+ */
8169
+ 404: ApiProblemResponseDto;
8170
+ /**
8171
+ * Resource conflict - rule is being modified by another process
8172
+ */
8173
+ 409: ApiProblemResponseDto;
7774
8174
  };
7775
8175
  };
7776
- delete: {
7777
- req: PropertyControllerDeleteData;
8176
+ };
8177
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
8178
+ post: {
8179
+ req: TransactionRuleControllerTestData;
7778
8180
  res: {
7779
8181
  /**
7780
- * Property deleted successfully
8182
+ * Test result
7781
8183
  */
7782
- 204: void;
8184
+ 200: TestRuleResponseDto;
7783
8185
  /**
7784
8186
  * Unauthorized
7785
8187
  */
7786
- 401: unknown;
8188
+ 401: ApiProblemResponseDto;
7787
8189
  /**
7788
- * Forbidden - insufficient permissions
8190
+ * Forbidden - not owner of rule
7789
8191
  */
7790
- 403: unknown;
8192
+ 403: ApiProblemResponseDto;
7791
8193
  /**
7792
- * Property not found
8194
+ * Rule not found
7793
8195
  */
7794
- 404: unknown;
8196
+ 404: ApiProblemResponseDto;
7795
8197
  };
7796
8198
  };
7797
8199
  };
@@ -8338,7 +8740,7 @@ type $OpenApiTs = {
8338
8740
  /**
8339
8741
  * List of platforms with user binding status
8340
8742
  */
8341
- 200: unknown;
8743
+ 200: Array<PlatformListItemDto>;
8342
8744
  };
8343
8745
  };
8344
8746
  };
@@ -8347,9 +8749,9 @@ type $OpenApiTs = {
8347
8749
  req: PlatformControllerMatchPlatformsData;
8348
8750
  res: {
8349
8751
  /**
8350
- * List of matching platforms with suggested segment names
8752
+ * Matching platforms with overall match type and truncation flag
8351
8753
  */
8352
- 200: unknown;
8754
+ 200: PlatformMatchResponseDto;
8353
8755
  };
8354
8756
  };
8355
8757
  };
@@ -8468,78 +8870,6 @@ type $OpenApiTs = {
8468
8870
  };
8469
8871
  };
8470
8872
  };
8471
- '/api/v1/{region}/reporting/portfolio/trends': {
8472
- get: {
8473
- req: ReportingControllerGetPortfolioTrendsData;
8474
- res: {
8475
- /**
8476
- * Trends retrieved successfully
8477
- */
8478
- 200: PortfolioTrendsResponseDto;
8479
- /**
8480
- * User not authenticated
8481
- */
8482
- 401: unknown;
8483
- };
8484
- };
8485
- };
8486
- '/api/v1/{region}/reporting/cash-flow/trends': {
8487
- get: {
8488
- req: ReportingControllerGetCashFlowTrendsData;
8489
- res: {
8490
- /**
8491
- * Cash-flow trends retrieved successfully
8492
- */
8493
- 200: CashFlowTrendsResponseDto;
8494
- /**
8495
- * User not authenticated
8496
- */
8497
- 401: unknown;
8498
- };
8499
- };
8500
- };
8501
- '/api/v1/{region}/reporting/snapshots/generate': {
8502
- post: {
8503
- req: ReportingControllerGenerateSnapshotData;
8504
- res: {
8505
- /**
8506
- * Snapshot generated successfully
8507
- */
8508
- 200: GenerateSnapshotResponse;
8509
- /**
8510
- * Invalid date format
8511
- */
8512
- 400: unknown;
8513
- /**
8514
- * User not authenticated
8515
- */
8516
- 401: unknown;
8517
- };
8518
- };
8519
- };
8520
- '/api/v1/{region}/reporting/snapshots/backfill': {
8521
- post: {
8522
- req: ReportingControllerBackfillSnapshotsData;
8523
- res: {
8524
- /**
8525
- * Backfill completed successfully
8526
- */
8527
- 200: BackfillSnapshotsResponse;
8528
- /**
8529
- * Invalid date format or range
8530
- */
8531
- 400: unknown;
8532
- /**
8533
- * User not authenticated
8534
- */
8535
- 401: unknown;
8536
- /**
8537
- * Backfill already in progress for this user
8538
- */
8539
- 409: unknown;
8540
- };
8541
- };
8542
- };
8543
8873
  '/api/v1/auth/api-keys': {
8544
8874
  post: {
8545
8875
  res: {
@@ -8561,7 +8891,7 @@ type $OpenApiTs = {
8561
8891
  /**
8562
8892
  * Login successful
8563
8893
  */
8564
- 200: unknown;
8894
+ 200: AnonymousLoginResponseDto;
8565
8895
  /**
8566
8896
  * Invalid access token
8567
8897
  */
@@ -8708,6 +9038,32 @@ type $OpenApiTs = {
8708
9038
  };
8709
9039
  };
8710
9040
  };
9041
+ '/api/v1/market/symbols/search': {
9042
+ get: {
9043
+ req: SymbolControllerSearchData;
9044
+ res: {
9045
+ /**
9046
+ * Ranked search results
9047
+ */
9048
+ 200: Array<SymbolSearchResultDto>;
9049
+ };
9050
+ };
9051
+ };
9052
+ '/api/v1/market/symbols/{symbol}/quote': {
9053
+ get: {
9054
+ req: SymbolControllerGetQuoteData;
9055
+ res: {
9056
+ /**
9057
+ * Symbol quote
9058
+ */
9059
+ 200: SymbolQuoteDto;
9060
+ /**
9061
+ * Symbol not found in the openbb catalog
9062
+ */
9063
+ 404: unknown;
9064
+ };
9065
+ };
9066
+ };
8711
9067
  };
8712
9068
 
8713
9069
  declare class BeanAccountsService {
@@ -8759,7 +9115,7 @@ declare class BeanAccountsService {
8759
9115
  static accountControllerUpdate(data: AccountControllerUpdateData): CancelablePromise<AccountControllerUpdateResponse>;
8760
9116
  /**
8761
9117
  * Delete account
8762
- * Deletes an account (only if no transactions)
9118
+ * Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
8763
9119
  * @param data The data for the request.
8764
9120
  * @param data.id Account UUID
8765
9121
  * @param data.region Region code for tenant context
@@ -8789,6 +9145,17 @@ declare class BeanAccountsService {
8789
9145
  * @throws ApiError
8790
9146
  */
8791
9147
  static accountControllerReopen(data: AccountControllerReopenData): CancelablePromise<AccountControllerReopenResponse>;
9148
+ /**
9149
+ * Post an opening-balance transaction
9150
+ * Posts a double-entry opening-balance transaction against Equity:Opening-Balances for an existing Assets/Liabilities account. At most one active opening balance per account.
9151
+ * @param data The data for the request.
9152
+ * @param data.id Account UUID
9153
+ * @param data.region Region code for tenant context
9154
+ * @param data.requestBody
9155
+ * @returns OpeningBalanceResultDto Opening-balance transaction created
9156
+ * @throws ApiError
9157
+ */
9158
+ static accountControllerAddOpeningBalance(data: AccountControllerAddOpeningBalanceData): CancelablePromise<AccountControllerAddOpeningBalanceResponse>;
8792
9159
  }
8793
9160
  declare class BeanTransactionsService {
8794
9161
  /**
@@ -9120,4 +9487,4 @@ type OpenAPIConfig = {
9120
9487
  };
9121
9488
  declare const OpenAPI: OpenAPIConfig;
9122
9489
 
9123
- export { type $OpenApiTs, 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 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 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 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 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 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 method, type mode, type paymentSource, type period, type provider, 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 };
9490
+ 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 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 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 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 };