@tinkerlandai/indiana-sdk 0.9.2 → 0.10.1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +50 -5
  3. package/README.zh-CN.md +30 -5
  4. package/dist/{ai-usage-DMNKvCiq.d.ts → ai-usage-Cn7dhvFw.d.ts} +5 -5
  5. package/dist/{api--Zf0gxfj.d.ts → api-DC44FaTV.d.ts} +6346 -749
  6. package/dist/chunk-2Y4G5364.js +6 -0
  7. package/dist/chunk-6ZZUNGNE.js +1 -0
  8. package/dist/chunk-ABNSU3ZG.js +4 -0
  9. package/dist/chunk-ACF2FBUB.js +1 -0
  10. package/dist/{chunk-65TBYVCS.js → chunk-AHXYGGAA.js} +1 -1
  11. package/dist/chunk-BOCKPUCM.js +2 -0
  12. package/dist/chunk-CCPNMQHZ.js +1 -0
  13. package/dist/chunk-CLXORAOK.js +1 -0
  14. package/dist/chunk-EDQCH2QS.js +1 -0
  15. package/dist/chunk-IWWKVNEX.js +1 -0
  16. package/dist/chunk-QUWPPZHH.js +1 -0
  17. package/dist/chunk-SBPTOOYB.js +1 -0
  18. package/dist/chunk-WYZI3TNB.js +1 -0
  19. package/dist/chunk-X6BCUINI.js +173 -0
  20. package/dist/chunk-Y46ALAKP.js +1 -0
  21. package/dist/{configuration-sync-E98CqVwh.d.ts → configuration-sync-CXe9Zcng.d.ts} +74 -21
  22. package/dist/content-ZRWZ26PF.js +1 -0
  23. package/dist/coupon-fA1QujHt.d.ts +184 -0
  24. package/dist/{customer-page-9B97Qdt_.d.ts → customer-page-km5f1PJZ.d.ts} +86 -182
  25. package/dist/{funnel-local-client-BjPwXlQb.d.ts → funnel-local-client-BQsdOjQ7.d.ts} +19985 -2451
  26. package/dist/funnel-node-evaluation-P5B4fPfJ.d.ts +2054 -0
  27. package/dist/funnel-resource-client-Zof1WLgA.d.ts +14525 -0
  28. package/dist/funnel-runtime-host-N7TX3LWI.js +1 -0
  29. package/dist/index.d.ts +13905 -13996
  30. package/dist/index.js +1 -1
  31. package/dist/native-shell.js +1 -1
  32. package/dist/openrouter.d.ts +3 -3
  33. package/dist/openrouter.js +1 -1
  34. package/dist/page.d.ts +4 -4
  35. package/dist/page.js +1 -1
  36. package/dist/paywall-DR65VN2G.js +1 -0
  37. package/dist/popup.d.ts +7 -5
  38. package/dist/popup.js +1 -1
  39. package/dist/react-native.d.ts +36432 -174
  40. package/dist/react-native.js +1 -1
  41. package/dist/{screen-BITZ11jn.d.ts → screen-D81zCpfi.d.ts} +159 -6
  42. package/dist/{screen-renderer-A6VYE2QL.js → screen-renderer-ZSAR7LPS.js} +1 -1
  43. package/dist/server.d.ts +2924 -500
  44. package/dist/server.js +1 -1
  45. package/dist/visual-dom-OFB7BFFB.js +1 -0
  46. package/dist/visual.d.ts +2 -2
  47. package/dist/visual.js +1 -1
  48. package/package.json +1 -1
  49. package/dist/chunk-5O667MKA.js +0 -1
  50. package/dist/chunk-67A7I6MB.js +0 -1
  51. package/dist/chunk-CCQHYQ4P.js +0 -1
  52. package/dist/chunk-CPLLMISZ.js +0 -1
  53. package/dist/chunk-G23YNWWI.js +0 -1
  54. package/dist/chunk-L7LKE3MG.js +0 -173
  55. package/dist/chunk-NH2PTTNK.js +0 -2
  56. package/dist/chunk-PK5HYUHD.js +0 -1
  57. package/dist/chunk-SEW4YVR7.js +0 -1
  58. package/dist/chunk-UYSOTMY3.js +0 -1
  59. package/dist/chunk-WSVH6IQA.js +0 -1
  60. package/dist/chunk-YZSQDZXW.js +0 -4
  61. package/dist/content-3LOJVYQO.js +0 -1
  62. package/dist/errors-0TSUIbUi.d.ts +0 -115
  63. package/dist/funnel-runtime-host-NYHKQT6T.js +0 -1
  64. package/dist/paywall-ISCYOGPZ.js +0 -1
package/dist/server.d.ts CHANGED
@@ -1,17 +1,29 @@
1
- import { F as FoundationApi, I as InvoiceModeParams } from './api--Zf0gxfj.js';
2
- import { v as IndianaServerOptions, w as FunnelLocalConfiguration, p as PaywallStartInput, g as PaywallSession, h as FeatureClientOptions, R as RemoteFeatureResult } from './funnel-local-client-BjPwXlQb.js';
3
- export { k as FeatureClient, l as FunnelNodeEvaluationContext, j as FunnelStartInput, L as LocalFunnelClient, n as LocalFunnelClientOptions, r as createFeatureClient, x as createFunnelStartClient, s as createLocalFunnelClient, u as evaluateFunnelNode } from './funnel-local-client-BjPwXlQb.js';
1
+ import { F as FoundationApi, I as InvoiceModeParams } from './api-DC44FaTV.js';
2
+ import { y as IndianaServerOptions, p as PaywallStartInput, P as PaywallSession, m as IndianaError, j as FeatureClientOptions, R as RemoteFeatureResult } from './funnel-local-client-BQsdOjQ7.js';
3
+ export { i as FeatureClient, c as FunnelStartInput, L as LocalFunnelClient, n as LocalFunnelClientOptions, t as createFeatureClient, z as createFunnelStartClient, u as createLocalFunnelClient } from './funnel-local-client-BQsdOjQ7.js';
4
4
  import * as zod from 'zod';
5
5
  import { z } from 'zod';
6
- import { S as StackNode } from './screen-BITZ11jn.js';
7
- import { C as ConfigurationSync } from './configuration-sync-E98CqVwh.js';
8
- export { c as createConfigurationSync } from './configuration-sync-E98CqVwh.js';
6
+ import { S as StackNode } from './screen-D81zCpfi.js';
7
+ import { a as ConfigurationSync } from './configuration-sync-CXe9Zcng.js';
8
+ export { c as createConfigurationSync } from './configuration-sync-CXe9Zcng.js';
9
9
  import { J as JsonValue, E as EvaluationContext, s as stickyAssignmentDocumentSchema, F as FeatureResult } from './growth-rules-B4YYy64R.js';
10
- import { I as IndianaError } from './errors-0TSUIbUi.js';
11
- export { d as AiPricingOptions, b as AiTokenQuote, a as AiTokenUsage, A as AiUsageContext, e as AiUsageMiddlewareOptions, f as AiUsageRecord, g as aiPriceSnapshotSchema, h as aiTokenQuoteSchema, c as createAiPricing, i as createAiUsageMiddleware, j as createConfiguredAiPricing } from './ai-usage-DMNKvCiq.js';
10
+ import { a as FunnelLocalConfiguration, b as MerchantBridgeCommand, c as MerchantBridgeRequest, m as merchantBridgeOperationAuthoritySchema, M as MerchantBridgeManifest, d as merchantBridgeCommandInputs, f as merchantBridgeCommandOutputs, g as merchantBridgeOperationInputSchema } from './funnel-node-evaluation-P5B4fPfJ.js';
11
+ export { F as FunnelNodeEvaluationContext, e as evaluateFunnelNode } from './funnel-node-evaluation-P5B4fPfJ.js';
12
+ export { d as AiPricingOptions, b as AiTokenQuote, a as AiTokenUsage, A as AiUsageContext, e as AiUsageMiddlewareOptions, f as AiUsageRecord, g as aiPriceSnapshotSchema, h as aiTokenQuoteSchema, c as createAiPricing, i as createAiUsageMiddleware, j as createConfiguredAiPricing } from './ai-usage-Cn7dhvFw.js';
12
13
  import 'zod/v4';
13
14
  import '@ai-sdk/provider';
14
15
 
16
+ type MerchantBridgeAuthentication = {
17
+ keyId: string;
18
+ signingSecret: string;
19
+ };
20
+ /** Server-side only. Native browser requests must never contain this shared key. */
21
+ declare function signMerchantBridgeMessage(body: string, authentication: MerchantBridgeAuthentication, direction: "request" | "response", now?: number): Promise<{
22
+ "X-Indiana-Bridge-Key-Id": string;
23
+ "X-Indiana-Bridge-Signature": string;
24
+ }>;
25
+ declare function verifyMerchantBridgeMessage(body: string, headers: Headers, authentication: MerchantBridgeAuthentication, direction: "request" | "response", now?: number): Promise<boolean>;
26
+
15
27
  declare const funnelDecisionSchema: z.ZodObject<{
16
28
  requestId: z.ZodUUID;
17
29
  decisionId: z.ZodUUID;
@@ -238,8 +250,8 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
238
250
  revision: number;
239
251
  visit: number;
240
252
  nodeId: string;
241
- nodeType: "output" | "feature" | "split" | "action" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
242
- status: "running" | "failed" | "completed" | "closed" | "ineligible" | "waiting";
253
+ nodeType: "output" | "action" | "split" | "feature" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
254
+ status: "failed" | "running" | "completed" | "closed" | "ineligible" | "waiting";
243
255
  stopped: boolean;
244
256
  canBack: boolean;
245
257
  authenticated: boolean;
@@ -271,7 +283,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
271
283
  primary: string;
272
284
  background: string;
273
285
  text: string;
274
- radius: "none" | "sm" | "md" | "lg" | "full";
286
+ radius: "none" | "full" | "sm" | "md" | "lg";
275
287
  font: "system" | "serif" | "rounded" | "mono";
276
288
  };
277
289
  pages: {
@@ -282,7 +294,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
282
294
  primary: string;
283
295
  background: string;
284
296
  text: string;
285
- radius: "none" | "sm" | "md" | "lg" | "full";
297
+ radius: "none" | "full" | "sm" | "md" | "lg";
286
298
  font: "system" | "serif" | "rounded" | "mono";
287
299
  } | undefined;
288
300
  editorPosition?: {
@@ -403,6 +415,33 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
403
415
  price: string;
404
416
  period: string;
405
417
  currency?: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON" | undefined;
418
+ amountMinor?: number | undefined;
419
+ interval?: "week" | "month" | "year" | "one_time" | "free" | undefined;
420
+ intervalCount?: number | undefined;
421
+ prepaid?: {
422
+ internalFeatureId: string;
423
+ name: string;
424
+ includedAmount: string;
425
+ reset: "week" | "month" | "year" | "hour" | "day" | "lifetime";
426
+ resetCount: number;
427
+ terms: {
428
+ units: string;
429
+ prices: {
430
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
431
+ amountMinor: number;
432
+ pricing?: {
433
+ kind: "graduated" | "volume";
434
+ tiers: {
435
+ upTo: number | null;
436
+ unitAmountMinor: number;
437
+ flatAmountMinor?: number | undefined;
438
+ }[];
439
+ } | undefined;
440
+ }[];
441
+ minimumQuantity: number;
442
+ maximumQuantity: number;
443
+ };
444
+ }[] | undefined;
406
445
  }>;
407
446
  pickers: Record<string, {
408
447
  options: string[];
@@ -425,15 +464,23 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
425
464
  productId: string;
426
465
  productVersionId: string;
427
466
  name: string;
428
- action: "upgrade" | "purchase" | "addon" | "topup";
467
+ action: "purchase" | "upgrade" | "addon" | "topup";
429
468
  membershipId: string | null;
430
469
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
431
470
  amountMinor: string;
432
- interval: "free" | "month" | "year" | "week" | "one_time";
471
+ interval: "week" | "month" | "year" | "one_time" | "free";
433
472
  intervalCount: number;
434
473
  }[];
435
474
  } | null;
436
475
  } | undefined;
476
+ quantities?: Record<string, {
477
+ minimum: number;
478
+ maximum: number;
479
+ step: number;
480
+ value: number;
481
+ label: string;
482
+ available: boolean;
483
+ }> | undefined;
437
484
  };
438
485
  customerData: {
439
486
  nodes: Record<string, {
@@ -521,7 +568,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
521
568
  cursor: {
522
569
  at: string;
523
570
  id: string;
524
- type: "usage" | "source" | "invoice" | "debt" | "transaction" | "settlement";
571
+ type: "invoice" | "usage" | "source" | "debt" | "transaction" | "settlement";
525
572
  };
526
573
  } | {
527
574
  kind: "billing";
@@ -538,6 +585,18 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
538
585
  version: number;
539
586
  document: {
540
587
  kind: "paywall";
588
+ presentation: {
589
+ type: "modal";
590
+ size: "sm" | "md" | "lg";
591
+ } | {
592
+ type: "sheet";
593
+ size: "sm" | "md" | "lg";
594
+ } | {
595
+ type: "fullscreen";
596
+ } | {
597
+ type: "inline";
598
+ };
599
+ offeringVersionId: string | null;
541
600
  name: string;
542
601
  products: {
543
602
  items: {
@@ -557,17 +616,6 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
557
616
  }[];
558
617
  } | undefined;
559
618
  };
560
- presentation: {
561
- type: "modal";
562
- size: "sm" | "md" | "lg";
563
- } | {
564
- type: "sheet";
565
- size: "sm" | "md" | "lg";
566
- } | {
567
- type: "fullscreen";
568
- } | {
569
- type: "inline";
570
- };
571
619
  screen: {
572
620
  kind: "screen";
573
621
  schemaVersion: 4;
@@ -588,7 +636,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
588
636
  primary: string;
589
637
  background: string;
590
638
  text: string;
591
- radius: "none" | "sm" | "md" | "lg" | "full";
639
+ radius: "none" | "full" | "sm" | "md" | "lg";
592
640
  font: "system" | "serif" | "rounded" | "mono";
593
641
  };
594
642
  pages: {
@@ -599,7 +647,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
599
647
  primary: string;
600
648
  background: string;
601
649
  text: string;
602
- radius: "none" | "sm" | "md" | "lg" | "full";
650
+ radius: "none" | "full" | "sm" | "md" | "lg";
603
651
  font: "system" | "serif" | "rounded" | "mono";
604
652
  } | undefined;
605
653
  editorPosition?: {
@@ -648,7 +696,6 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
648
696
  initialPageId?: string | undefined;
649
697
  };
650
698
  schemaVersion: 3;
651
- offeringVersionId: string | null;
652
699
  buttons: Record<string, {
653
700
  type: "checkout";
654
701
  product: {
@@ -729,6 +776,33 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
729
776
  price: string;
730
777
  period: string;
731
778
  currency?: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON" | undefined;
779
+ amountMinor?: number | undefined;
780
+ interval?: "week" | "month" | "year" | "one_time" | "free" | undefined;
781
+ intervalCount?: number | undefined;
782
+ prepaid?: {
783
+ internalFeatureId: string;
784
+ name: string;
785
+ includedAmount: string;
786
+ reset: "week" | "month" | "year" | "hour" | "day" | "lifetime";
787
+ resetCount: number;
788
+ terms: {
789
+ units: string;
790
+ prices: {
791
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
792
+ amountMinor: number;
793
+ pricing?: {
794
+ kind: "graduated" | "volume";
795
+ tiers: {
796
+ upTo: number | null;
797
+ unitAmountMinor: number;
798
+ flatAmountMinor?: number | undefined;
799
+ }[];
800
+ } | undefined;
801
+ }[];
802
+ minimumQuantity: number;
803
+ maximumQuantity: number;
804
+ };
805
+ }[] | undefined;
732
806
  }>;
733
807
  pickers: Record<string, {
734
808
  options: string[];
@@ -751,15 +825,23 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
751
825
  productId: string;
752
826
  productVersionId: string;
753
827
  name: string;
754
- action: "upgrade" | "purchase" | "addon" | "topup";
828
+ action: "purchase" | "upgrade" | "addon" | "topup";
755
829
  membershipId: string | null;
756
830
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
757
831
  amountMinor: string;
758
- interval: "free" | "month" | "year" | "week" | "one_time";
832
+ interval: "week" | "month" | "year" | "one_time" | "free";
759
833
  intervalCount: number;
760
834
  }[];
761
835
  } | null;
762
836
  } | undefined;
837
+ quantities?: Record<string, {
838
+ minimum: number;
839
+ maximum: number;
840
+ step: number;
841
+ value: number;
842
+ label: string;
843
+ available: boolean;
844
+ }> | undefined;
763
845
  };
764
846
  check: {
765
847
  internal_feature_id: string;
@@ -774,11 +856,11 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
774
856
  productId: string;
775
857
  productVersionId: string;
776
858
  name: string;
777
- action: "upgrade" | "purchase" | "addon" | "topup";
859
+ action: "purchase" | "upgrade" | "addon" | "topup";
778
860
  membershipId: string | null;
779
861
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
780
862
  amountMinor: string;
781
- interval: "free" | "month" | "year" | "week" | "one_time";
863
+ interval: "week" | "month" | "year" | "one_time" | "free";
782
864
  intervalCount: number;
783
865
  }[];
784
866
  } | null;
@@ -809,18 +891,15 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
809
891
  productId: string;
810
892
  productVersionId: string;
811
893
  name: string;
812
- action: "upgrade" | "purchase" | "addon" | "topup";
894
+ action: "purchase" | "upgrade" | "addon" | "topup";
813
895
  membershipId: string | null;
814
896
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
815
897
  amountMinor: string;
816
- interval: "free" | "month" | "year" | "week" | "one_time";
898
+ interval: "week" | "month" | "year" | "one_time" | "free";
817
899
  intervalCount: number;
818
900
  }[];
819
901
  } | null;
820
902
  } | null;
821
- id: string;
822
- version: number;
823
- paywallId: string;
824
903
  capabilities: {
825
904
  nodes: Record<string, {
826
905
  base: {
@@ -875,6 +954,33 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
875
954
  price: string;
876
955
  period: string;
877
956
  currency?: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON" | undefined;
957
+ amountMinor?: number | undefined;
958
+ interval?: "week" | "month" | "year" | "one_time" | "free" | undefined;
959
+ intervalCount?: number | undefined;
960
+ prepaid?: {
961
+ internalFeatureId: string;
962
+ name: string;
963
+ includedAmount: string;
964
+ reset: "week" | "month" | "year" | "hour" | "day" | "lifetime";
965
+ resetCount: number;
966
+ terms: {
967
+ units: string;
968
+ prices: {
969
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
970
+ amountMinor: number;
971
+ pricing?: {
972
+ kind: "graduated" | "volume";
973
+ tiers: {
974
+ upTo: number | null;
975
+ unitAmountMinor: number;
976
+ flatAmountMinor?: number | undefined;
977
+ }[];
978
+ } | undefined;
979
+ }[];
980
+ minimumQuantity: number;
981
+ maximumQuantity: number;
982
+ };
983
+ }[] | undefined;
878
984
  }>;
879
985
  pickers: Record<string, {
880
986
  options: string[];
@@ -897,16 +1003,27 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
897
1003
  productId: string;
898
1004
  productVersionId: string;
899
1005
  name: string;
900
- action: "upgrade" | "purchase" | "addon" | "topup";
1006
+ action: "purchase" | "upgrade" | "addon" | "topup";
901
1007
  membershipId: string | null;
902
1008
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
903
1009
  amountMinor: string;
904
- interval: "free" | "month" | "year" | "week" | "one_time";
1010
+ interval: "week" | "month" | "year" | "one_time" | "free";
905
1011
  intervalCount: number;
906
1012
  }[];
907
1013
  } | null;
908
1014
  } | undefined;
1015
+ quantities?: Record<string, {
1016
+ minimum: number;
1017
+ maximum: number;
1018
+ step: number;
1019
+ value: number;
1020
+ label: string;
1021
+ available: boolean;
1022
+ }> | undefined;
909
1023
  };
1024
+ id: string;
1025
+ version: number;
1026
+ paywallId: string;
910
1027
  content: {
911
1028
  environmentId: string;
912
1029
  offeringVersionId: string;
@@ -959,13 +1076,13 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
959
1076
  totalMinor: number;
960
1077
  } | null;
961
1078
  expiresAt: string;
962
- provider: "stripe" | "apple" | "google";
1079
+ provider: "merchant" | "stripe" | "apple" | "google";
963
1080
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
964
1081
  lines: {
965
1082
  lineId: string;
966
1083
  productVersionId: string;
967
1084
  productName: string;
968
- interval: "free" | "month" | "year" | "week" | "one_time";
1085
+ interval: "week" | "month" | "year" | "one_time" | "free";
969
1086
  baseAmountMinor: number;
970
1087
  seats: {
971
1088
  key: string;
@@ -1018,8 +1135,62 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1018
1135
  catalogAmountMinor: number;
1019
1136
  automaticTax: boolean;
1020
1137
  execution: {
1138
+ type: "purchase";
1139
+ mode: "payment" | "subscription";
1140
+ lineItems: {
1141
+ priceId: string;
1142
+ productVersionId: string;
1143
+ productId: string;
1144
+ quantity: number;
1145
+ unitAmountMinor: number;
1146
+ totalMinor: number;
1147
+ interval: "week" | "month" | "year" | "one_off";
1148
+ intervalCount: number;
1149
+ kind: "fixed" | "prepaid" | "seat";
1150
+ tiers: {
1151
+ mode: "graduated" | "volume";
1152
+ tiers: {
1153
+ upTo: number | null;
1154
+ unitAmountMinor: number;
1155
+ flatAmountMinor?: number | undefined;
1156
+ }[];
1157
+ } | null;
1158
+ }[];
1159
+ catalogAmountMinor: number;
1160
+ discount: {
1161
+ grantId: string;
1162
+ couponId: string;
1163
+ amountMinor: number;
1164
+ terms: {
1165
+ type: "percent";
1166
+ percentOff: number;
1167
+ } | {
1168
+ type: "amount";
1169
+ amountOffMinor: number;
1170
+ currency: string;
1171
+ };
1172
+ duration: {
1173
+ type: "once";
1174
+ } | {
1175
+ type: "forever";
1176
+ } | {
1177
+ type: "repeating";
1178
+ months: number;
1179
+ };
1180
+ } | null;
1181
+ trialPeriodDays: number | null;
1182
+ automaticTax: boolean;
1183
+ provider: "merchant";
1184
+ executor: "merchant";
1185
+ operationId: string;
1186
+ customerId: string;
1187
+ configurationRevision: number;
1188
+ connectionRevision: number;
1189
+ currency: string;
1190
+ expiresAt: string;
1191
+ } | {
1021
1192
  provider: "stripe";
1022
- executor: "indiana" | "merchant";
1193
+ executor: "merchant" | "indiana";
1023
1194
  accountId: string;
1024
1195
  mode: "payment" | "subscription";
1025
1196
  lineItems: {
@@ -1029,7 +1200,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1029
1200
  productName: string;
1030
1201
  amountMinor: number;
1031
1202
  currency: string;
1032
- interval: "month" | "year" | "one_off" | "week";
1203
+ interval: "week" | "month" | "year" | "one_off";
1033
1204
  intervalCount: number;
1034
1205
  slot: "stripe_price_id" | "stripe_empty_price_id";
1035
1206
  tiers: {
@@ -1046,7 +1217,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1046
1217
  terms: {
1047
1218
  id: string;
1048
1219
  name: string;
1049
- duration: "forever" | "once" | "repeating";
1220
+ duration: "once" | "forever" | "repeating";
1050
1221
  percent_off?: number | undefined;
1051
1222
  amount_off?: number | undefined;
1052
1223
  currency?: string | undefined;
@@ -1090,12 +1261,66 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1090
1261
  operation: {
1091
1262
  operationId: string;
1092
1263
  orderId: string;
1093
- status: "pending" | "failed" | "complete" | "cancelled";
1094
- executor: "indiana" | "merchant";
1264
+ status: "pending" | "failed" | "cancelled" | "complete";
1265
+ executor: "merchant" | "indiana";
1095
1266
  checkoutUrl: string | null;
1096
1267
  execution: {
1268
+ type: "purchase";
1269
+ mode: "payment" | "subscription";
1270
+ lineItems: {
1271
+ priceId: string;
1272
+ productVersionId: string;
1273
+ productId: string;
1274
+ quantity: number;
1275
+ unitAmountMinor: number;
1276
+ totalMinor: number;
1277
+ interval: "week" | "month" | "year" | "one_off";
1278
+ intervalCount: number;
1279
+ kind: "fixed" | "prepaid" | "seat";
1280
+ tiers: {
1281
+ mode: "graduated" | "volume";
1282
+ tiers: {
1283
+ upTo: number | null;
1284
+ unitAmountMinor: number;
1285
+ flatAmountMinor?: number | undefined;
1286
+ }[];
1287
+ } | null;
1288
+ }[];
1289
+ catalogAmountMinor: number;
1290
+ discount: {
1291
+ grantId: string;
1292
+ couponId: string;
1293
+ amountMinor: number;
1294
+ terms: {
1295
+ type: "percent";
1296
+ percentOff: number;
1297
+ } | {
1298
+ type: "amount";
1299
+ amountOffMinor: number;
1300
+ currency: string;
1301
+ };
1302
+ duration: {
1303
+ type: "once";
1304
+ } | {
1305
+ type: "forever";
1306
+ } | {
1307
+ type: "repeating";
1308
+ months: number;
1309
+ };
1310
+ } | null;
1311
+ trialPeriodDays: number | null;
1312
+ automaticTax: boolean;
1313
+ provider: "merchant";
1314
+ executor: "merchant";
1315
+ operationId: string;
1316
+ customerId: string;
1317
+ configurationRevision: number;
1318
+ connectionRevision: number;
1319
+ currency: string;
1320
+ expiresAt: string;
1321
+ } | {
1097
1322
  provider: "stripe";
1098
- executor: "indiana" | "merchant";
1323
+ executor: "merchant" | "indiana";
1099
1324
  accountId: string;
1100
1325
  mode: "payment" | "subscription";
1101
1326
  lineItems: {
@@ -1105,7 +1330,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1105
1330
  productName: string;
1106
1331
  amountMinor: number;
1107
1332
  currency: string;
1108
- interval: "month" | "year" | "one_off" | "week";
1333
+ interval: "week" | "month" | "year" | "one_off";
1109
1334
  intervalCount: number;
1110
1335
  slot: "stripe_price_id" | "stripe_empty_price_id";
1111
1336
  tiers: {
@@ -1122,7 +1347,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1122
1347
  terms: {
1123
1348
  id: string;
1124
1349
  name: string;
1125
- duration: "forever" | "once" | "repeating";
1350
+ duration: "once" | "forever" | "repeating";
1126
1351
  percent_off?: number | undefined;
1127
1352
  amount_off?: number | undefined;
1128
1353
  currency?: string | undefined;
@@ -1168,7 +1393,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1168
1393
  productVersionId: string;
1169
1394
  provider: "apple" | "google";
1170
1395
  productId: string;
1171
- productKind: "lifetime" | "membership" | "credit_pack";
1396
+ productKind: "credit_pack" | "lifetime" | "membership";
1172
1397
  replacement: {
1173
1398
  sourceOrderId: string;
1174
1399
  sourceProductId: string;
@@ -1199,66 +1424,497 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1199
1424
  } | null;
1200
1425
  append?: boolean | undefined;
1201
1426
  invoiceMode?: boolean | undefined;
1202
- } | null;
1203
- purchaseRequestId: string | null;
1204
- selectionGeneration?: number | undefined;
1205
- canReselect?: boolean | undefined;
1206
- } | null;
1207
- instruction: {
1208
- environmentId: string;
1209
- attributes: Record<string, zod.JSONType>;
1210
- sticky: Record<string, {
1211
- attributeName: string;
1212
- attributeValue: string;
1213
- assignments: Record<string, string>;
1214
- }>;
1215
- policyRevision: number;
1216
- type: "evaluate_segment";
1217
- } | {
1218
- type: "wait";
1219
- receiptId: string;
1220
- kind: "operation" | "event" | "timer";
1221
- deadline: string | null;
1222
- eventName?: string | undefined;
1223
- } | {
1224
- type: "open_url";
1225
- receiptId: string;
1226
- url: string;
1227
- openIn: "same_window" | "new_window";
1228
- } | {
1229
- type: "event";
1230
- receiptId: string;
1231
- event: string;
1232
- } | null;
1233
- pendingRequest: {
1234
- requestId: string;
1235
- authenticationRequired: boolean;
1236
- } | null;
1237
- runExpiresAt: string;
1238
- credentialExpiresAt: string | null;
1239
- };
1240
- settlement?: {
1241
- requestId: string;
1242
- state: "unknown" | "pending" | "settled";
1243
- operationId: string | null;
1244
- receiptId?: string | null | undefined;
1245
- } | undefined;
1246
- purchase?: {
1247
- receiptId: string;
1248
- quote: {
1249
- operationId: string;
1250
- entityId: string | null;
1251
- billingSubscriptionId: string | null;
1252
- discount: {
1253
- offerId: string;
1254
- couponId: string;
1255
- discount: {
1256
- type: "percent";
1257
- percentOff: number;
1258
- } | {
1259
- type: "amount";
1260
- amountOffCents: number;
1261
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1427
+ confirmedAt?: string | null | undefined;
1428
+ quote?: {
1429
+ operationId: string;
1430
+ entityId: string | null;
1431
+ billingSubscriptionId: string | null;
1432
+ discount: {
1433
+ offerId: string;
1434
+ couponId: string;
1435
+ discount: {
1436
+ type: "percent";
1437
+ percentOff: number;
1438
+ } | {
1439
+ type: "amount";
1440
+ amountOffCents: number;
1441
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1442
+ };
1443
+ duration: {
1444
+ type: "once";
1445
+ } | {
1446
+ type: "repeating";
1447
+ months: number;
1448
+ } | {
1449
+ type: "forever";
1450
+ };
1451
+ amountMinor: number;
1452
+ allocations: {
1453
+ productVersionId: string;
1454
+ amountMinor: number;
1455
+ }[];
1456
+ expiresAt: string;
1457
+ } | null;
1458
+ charge: {
1459
+ effectiveAt: string;
1460
+ periodEndsAt: string;
1461
+ debitMinor: number;
1462
+ discountMinor: number;
1463
+ taxMinor: number;
1464
+ totalMinor: number;
1465
+ } | null;
1466
+ expiresAt: string;
1467
+ provider: "merchant" | "stripe" | "apple" | "google";
1468
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1469
+ lines: {
1470
+ lineId: string;
1471
+ productVersionId: string;
1472
+ productName: string;
1473
+ interval: "week" | "month" | "year" | "one_time" | "free";
1474
+ baseAmountMinor: number;
1475
+ seats: {
1476
+ key: string;
1477
+ quantity: number;
1478
+ includedQuantity: number;
1479
+ maximumQuantity: number;
1480
+ unitAmountMinor: number;
1481
+ }[];
1482
+ catalogAmountMinor: number;
1483
+ trial: {
1484
+ days: number;
1485
+ cardRequired: boolean;
1486
+ } | null;
1487
+ intervalCount?: number | undefined;
1488
+ prepaid?: {
1489
+ itemKey: string;
1490
+ internal_feature_id: string;
1491
+ includedAmount: string;
1492
+ quantity: number;
1493
+ terms: {
1494
+ units: string;
1495
+ prices: {
1496
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1497
+ amountMinor: number;
1498
+ pricing?: {
1499
+ kind: "graduated" | "volume";
1500
+ tiers: {
1501
+ upTo: number | null;
1502
+ unitAmountMinor: number;
1503
+ flatAmountMinor?: number | undefined;
1504
+ }[];
1505
+ } | undefined;
1506
+ }[];
1507
+ minimumQuantity: number;
1508
+ maximumQuantity: number;
1509
+ };
1510
+ unitAmountMinor: number;
1511
+ productId: string | null;
1512
+ priceId: string | null;
1513
+ pricing?: {
1514
+ kind: "graduated" | "volume";
1515
+ tiers: {
1516
+ upTo: number | null;
1517
+ unitAmountMinor: number;
1518
+ flatAmountMinor?: number | undefined;
1519
+ }[];
1520
+ } | undefined;
1521
+ }[] | undefined;
1522
+ }[];
1523
+ catalogAmountMinor: number;
1524
+ automaticTax: boolean;
1525
+ execution: {
1526
+ type: "purchase";
1527
+ mode: "payment" | "subscription";
1528
+ lineItems: {
1529
+ priceId: string;
1530
+ productVersionId: string;
1531
+ productId: string;
1532
+ quantity: number;
1533
+ unitAmountMinor: number;
1534
+ totalMinor: number;
1535
+ interval: "week" | "month" | "year" | "one_off";
1536
+ intervalCount: number;
1537
+ kind: "fixed" | "prepaid" | "seat";
1538
+ tiers: {
1539
+ mode: "graduated" | "volume";
1540
+ tiers: {
1541
+ upTo: number | null;
1542
+ unitAmountMinor: number;
1543
+ flatAmountMinor?: number | undefined;
1544
+ }[];
1545
+ } | null;
1546
+ }[];
1547
+ catalogAmountMinor: number;
1548
+ discount: {
1549
+ grantId: string;
1550
+ couponId: string;
1551
+ amountMinor: number;
1552
+ terms: {
1553
+ type: "percent";
1554
+ percentOff: number;
1555
+ } | {
1556
+ type: "amount";
1557
+ amountOffMinor: number;
1558
+ currency: string;
1559
+ };
1560
+ duration: {
1561
+ type: "once";
1562
+ } | {
1563
+ type: "forever";
1564
+ } | {
1565
+ type: "repeating";
1566
+ months: number;
1567
+ };
1568
+ } | null;
1569
+ trialPeriodDays: number | null;
1570
+ automaticTax: boolean;
1571
+ provider: "merchant";
1572
+ executor: "merchant";
1573
+ operationId: string;
1574
+ customerId: string;
1575
+ configurationRevision: number;
1576
+ connectionRevision: number;
1577
+ currency: string;
1578
+ expiresAt: string;
1579
+ } | {
1580
+ provider: "stripe";
1581
+ executor: "merchant" | "indiana";
1582
+ accountId: string;
1583
+ mode: "payment" | "subscription";
1584
+ lineItems: {
1585
+ price: string | null;
1586
+ quantity: number;
1587
+ priceId: string;
1588
+ productName: string;
1589
+ amountMinor: number;
1590
+ currency: string;
1591
+ interval: "week" | "month" | "year" | "one_off";
1592
+ intervalCount: number;
1593
+ slot: "stripe_price_id" | "stripe_empty_price_id";
1594
+ tiers: {
1595
+ mode: "graduated" | "volume";
1596
+ tiers: {
1597
+ upTo: number | null;
1598
+ unitAmountMinor: number;
1599
+ flatAmountMinor?: number | undefined;
1600
+ }[];
1601
+ } | null;
1602
+ }[];
1603
+ discounts: {
1604
+ coupon: string;
1605
+ terms: {
1606
+ id: string;
1607
+ name: string;
1608
+ duration: "once" | "forever" | "repeating";
1609
+ percent_off?: number | undefined;
1610
+ amount_off?: number | undefined;
1611
+ currency?: string | undefined;
1612
+ duration_in_months?: number | undefined;
1613
+ };
1614
+ }[];
1615
+ trialPeriodDays: number | null;
1616
+ metadata: {
1617
+ grooveCheckoutId: string;
1618
+ grooveCustomerId: string;
1619
+ };
1620
+ expiresAt: string;
1621
+ invoiceMode?: InvoiceModeParams | undefined;
1622
+ append?: {
1623
+ subscriptionId: string;
1624
+ customerId: string;
1625
+ sourceItems: {
1626
+ id: string;
1627
+ price_id: string;
1628
+ quantity: number;
1629
+ discounts?: {
1630
+ id: string;
1631
+ coupon: string;
1632
+ start: number;
1633
+ end: number | null;
1634
+ }[] | undefined;
1635
+ }[];
1636
+ prorationDate: number;
1637
+ amountMinor: number;
1638
+ periodStartMs: number;
1639
+ periodEndMs: number;
1640
+ } | undefined;
1641
+ } | null;
1642
+ nativeOffer?: {
1643
+ offerKind: "none" | "introductory" | "promotional";
1644
+ offerId: string | null;
1645
+ discountMinor: number;
1646
+ trialDays: number | null;
1647
+ } | undefined;
1648
+ } | undefined;
1649
+ merchantExecution?: {
1650
+ type: "purchase";
1651
+ merchantOrderId: string | null;
1652
+ paymentStatus: "unknown" | "not_started" | "pending" | "failed" | "succeeded" | "not_required" | "expired";
1653
+ checkoutUrl: string | null;
1654
+ checkoutExpiresAt: string | null;
1655
+ operationId: string;
1656
+ customerId: string;
1657
+ merchantExecutionId: string;
1658
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
1659
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
1660
+ updatedAt: string;
1661
+ problem: {
1662
+ phase: "payment" | "execution" | "fulfillment" | "recording";
1663
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
1664
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
1665
+ retryable: boolean;
1666
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
1667
+ } | null;
1668
+ pollAfterMs: number | null;
1669
+ } | {
1670
+ type: "subscription_change";
1671
+ status: "unknown" | "pending" | "applied" | "failed" | "scheduled";
1672
+ merchantSubscriptionId: string;
1673
+ scheduledFor: string | null;
1674
+ operationId: string;
1675
+ customerId: string;
1676
+ merchantExecutionId: string;
1677
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
1678
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
1679
+ updatedAt: string;
1680
+ problem: {
1681
+ phase: "payment" | "execution" | "fulfillment" | "recording";
1682
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
1683
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
1684
+ retryable: boolean;
1685
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
1686
+ } | null;
1687
+ pollAfterMs: number | null;
1688
+ } | {
1689
+ type: "refund";
1690
+ status: "unknown" | "pending" | "failed" | "succeeded";
1691
+ merchantRefundId: string | null;
1692
+ operationId: string;
1693
+ customerId: string;
1694
+ merchantExecutionId: string;
1695
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
1696
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
1697
+ updatedAt: string;
1698
+ problem: {
1699
+ phase: "payment" | "execution" | "fulfillment" | "recording";
1700
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
1701
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
1702
+ retryable: boolean;
1703
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
1704
+ } | null;
1705
+ pollAfterMs: number | null;
1706
+ } | null | undefined;
1707
+ problem?: {
1708
+ phase: "payment" | "execution" | "fulfillment" | "recording";
1709
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
1710
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
1711
+ retryable: boolean;
1712
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
1713
+ } | null | undefined;
1714
+ authority?: {
1715
+ scope: {
1716
+ projectId: string;
1717
+ environmentId: string;
1718
+ environment: "sandbox" | "live";
1719
+ };
1720
+ operationId: string;
1721
+ customerId: string;
1722
+ confirmedAt: string | null;
1723
+ initialExecutionAllowed: boolean;
1724
+ instruction: {
1725
+ type: "purchase";
1726
+ mode: "payment" | "subscription";
1727
+ lineItems: {
1728
+ priceId: string;
1729
+ productVersionId: string;
1730
+ productId: string;
1731
+ quantity: number;
1732
+ unitAmountMinor: number;
1733
+ totalMinor: number;
1734
+ interval: "week" | "month" | "year" | "one_off";
1735
+ intervalCount: number;
1736
+ kind: "fixed" | "prepaid" | "seat";
1737
+ tiers: {
1738
+ mode: "graduated" | "volume";
1739
+ tiers: {
1740
+ upTo: number | null;
1741
+ unitAmountMinor: number;
1742
+ flatAmountMinor?: number | undefined;
1743
+ }[];
1744
+ } | null;
1745
+ }[];
1746
+ catalogAmountMinor: number;
1747
+ discount: {
1748
+ grantId: string;
1749
+ couponId: string;
1750
+ amountMinor: number;
1751
+ terms: {
1752
+ type: "percent";
1753
+ percentOff: number;
1754
+ } | {
1755
+ type: "amount";
1756
+ amountOffMinor: number;
1757
+ currency: string;
1758
+ };
1759
+ duration: {
1760
+ type: "once";
1761
+ } | {
1762
+ type: "forever";
1763
+ } | {
1764
+ type: "repeating";
1765
+ months: number;
1766
+ };
1767
+ } | null;
1768
+ trialPeriodDays: number | null;
1769
+ automaticTax: boolean;
1770
+ provider: "merchant";
1771
+ executor: "merchant";
1772
+ operationId: string;
1773
+ customerId: string;
1774
+ configurationRevision: number;
1775
+ connectionRevision: number;
1776
+ currency: string;
1777
+ expiresAt: string;
1778
+ } | {
1779
+ type: "subscription_change";
1780
+ subscriptionId: string;
1781
+ merchantSubscriptionId: string;
1782
+ membershipId: string;
1783
+ subscriptionAction: "update" | "cancel" | "schedule" | "release";
1784
+ supersedesOperationId: string | null;
1785
+ change: {
1786
+ type: "cancel";
1787
+ } | {
1788
+ type: "uncancel";
1789
+ } | {
1790
+ type: "plan";
1791
+ productVersionId: string;
1792
+ } | {
1793
+ type: "seats";
1794
+ licenseKey: string;
1795
+ quantity: number;
1796
+ } | {
1797
+ type: "quantity";
1798
+ internal_feature_id: string;
1799
+ quantity: number;
1800
+ } | {
1801
+ type: "billing_cycle";
1802
+ billingCycleAnchor: number | "now";
1803
+ };
1804
+ timing: "immediate" | "renewal";
1805
+ effectiveAt: string;
1806
+ creditMinor: number;
1807
+ debitMinor: number;
1808
+ totalMinor: number;
1809
+ discountMinor: number;
1810
+ taxMinor: number;
1811
+ proration: "none" | "create_prorations" | "always_invoice";
1812
+ lineItems: {
1813
+ priceId: string;
1814
+ productVersionId: string;
1815
+ productId: string;
1816
+ unitAmountMinor: number;
1817
+ totalMinor: number;
1818
+ interval: "week" | "month" | "year" | "one_off";
1819
+ intervalCount: number;
1820
+ kind: "fixed" | "prepaid" | "seat";
1821
+ tiers: {
1822
+ mode: "graduated" | "volume";
1823
+ tiers: {
1824
+ upTo: number | null;
1825
+ unitAmountMinor: number;
1826
+ flatAmountMinor?: number | undefined;
1827
+ }[];
1828
+ } | null;
1829
+ quantity: number;
1830
+ }[];
1831
+ removePriceIds: string[];
1832
+ provider: "merchant";
1833
+ executor: "merchant";
1834
+ operationId: string;
1835
+ customerId: string;
1836
+ configurationRevision: number;
1837
+ connectionRevision: number;
1838
+ currency: string;
1839
+ expiresAt: string;
1840
+ } | {
1841
+ type: "refund";
1842
+ invoiceId: string;
1843
+ merchantInvoiceId: string;
1844
+ amountMinor: number;
1845
+ mode: "full" | "partial";
1846
+ entitlementAction: "retain" | "revoke";
1847
+ cancelSubscriptions: string[];
1848
+ provider: "merchant";
1849
+ executor: "merchant";
1850
+ operationId: string;
1851
+ customerId: string;
1852
+ configurationRevision: number;
1853
+ connectionRevision: number;
1854
+ currency: string;
1855
+ expiresAt: string;
1856
+ };
1857
+ } | undefined;
1858
+ } | null;
1859
+ purchaseRequestId: string | null;
1860
+ selectionGeneration?: number | undefined;
1861
+ canReselect?: boolean | undefined;
1862
+ } | null;
1863
+ instruction: {
1864
+ environmentId: string;
1865
+ attributes: Record<string, zod.JSONType>;
1866
+ sticky: Record<string, {
1867
+ attributeName: string;
1868
+ attributeValue: string;
1869
+ assignments: Record<string, string>;
1870
+ }>;
1871
+ policyRevision: number;
1872
+ type: "evaluate_segment";
1873
+ } | {
1874
+ type: "wait";
1875
+ receiptId: string;
1876
+ kind: "operation" | "event" | "timer";
1877
+ deadline: string | null;
1878
+ eventName?: string | undefined;
1879
+ } | {
1880
+ type: "open_url";
1881
+ receiptId: string;
1882
+ url: string;
1883
+ openIn: "same_window" | "new_window";
1884
+ } | {
1885
+ type: "event";
1886
+ receiptId: string;
1887
+ event: string;
1888
+ } | null;
1889
+ pendingRequest: {
1890
+ requestId: string;
1891
+ authenticationRequired: boolean;
1892
+ } | null;
1893
+ runExpiresAt: string;
1894
+ credentialExpiresAt: string | null;
1895
+ };
1896
+ settlement?: {
1897
+ requestId: string;
1898
+ state: "unknown" | "pending" | "settled";
1899
+ operationId: string | null;
1900
+ receiptId?: string | null | undefined;
1901
+ } | undefined;
1902
+ purchase?: {
1903
+ receiptId: string;
1904
+ quote: {
1905
+ operationId: string;
1906
+ entityId: string | null;
1907
+ billingSubscriptionId: string | null;
1908
+ discount: {
1909
+ offerId: string;
1910
+ couponId: string;
1911
+ discount: {
1912
+ type: "percent";
1913
+ percentOff: number;
1914
+ } | {
1915
+ type: "amount";
1916
+ amountOffCents: number;
1917
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1262
1918
  };
1263
1919
  duration: {
1264
1920
  type: "once";
@@ -1284,13 +1940,13 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1284
1940
  totalMinor: number;
1285
1941
  } | null;
1286
1942
  expiresAt: string;
1287
- provider: "stripe" | "apple" | "google";
1943
+ provider: "merchant" | "stripe" | "apple" | "google";
1288
1944
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1289
1945
  lines: {
1290
1946
  lineId: string;
1291
1947
  productVersionId: string;
1292
1948
  productName: string;
1293
- interval: "free" | "month" | "year" | "week" | "one_time";
1949
+ interval: "week" | "month" | "year" | "one_time" | "free";
1294
1950
  baseAmountMinor: number;
1295
1951
  seats: {
1296
1952
  key: string;
@@ -1337,14 +1993,198 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1337
1993
  unitAmountMinor: number;
1338
1994
  flatAmountMinor?: number | undefined;
1339
1995
  }[];
1340
- } | undefined;
1341
- }[] | undefined;
1342
- }[];
1343
- catalogAmountMinor: number;
1344
- automaticTax: boolean;
1345
- execution: {
1996
+ } | undefined;
1997
+ }[] | undefined;
1998
+ }[];
1999
+ catalogAmountMinor: number;
2000
+ automaticTax: boolean;
2001
+ execution: {
2002
+ type: "purchase";
2003
+ mode: "payment" | "subscription";
2004
+ lineItems: {
2005
+ priceId: string;
2006
+ productVersionId: string;
2007
+ productId: string;
2008
+ quantity: number;
2009
+ unitAmountMinor: number;
2010
+ totalMinor: number;
2011
+ interval: "week" | "month" | "year" | "one_off";
2012
+ intervalCount: number;
2013
+ kind: "fixed" | "prepaid" | "seat";
2014
+ tiers: {
2015
+ mode: "graduated" | "volume";
2016
+ tiers: {
2017
+ upTo: number | null;
2018
+ unitAmountMinor: number;
2019
+ flatAmountMinor?: number | undefined;
2020
+ }[];
2021
+ } | null;
2022
+ }[];
2023
+ catalogAmountMinor: number;
2024
+ discount: {
2025
+ grantId: string;
2026
+ couponId: string;
2027
+ amountMinor: number;
2028
+ terms: {
2029
+ type: "percent";
2030
+ percentOff: number;
2031
+ } | {
2032
+ type: "amount";
2033
+ amountOffMinor: number;
2034
+ currency: string;
2035
+ };
2036
+ duration: {
2037
+ type: "once";
2038
+ } | {
2039
+ type: "forever";
2040
+ } | {
2041
+ type: "repeating";
2042
+ months: number;
2043
+ };
2044
+ } | null;
2045
+ trialPeriodDays: number | null;
2046
+ automaticTax: boolean;
2047
+ provider: "merchant";
2048
+ executor: "merchant";
2049
+ operationId: string;
2050
+ customerId: string;
2051
+ configurationRevision: number;
2052
+ connectionRevision: number;
2053
+ currency: string;
2054
+ expiresAt: string;
2055
+ } | {
2056
+ provider: "stripe";
2057
+ executor: "merchant" | "indiana";
2058
+ accountId: string;
2059
+ mode: "payment" | "subscription";
2060
+ lineItems: {
2061
+ price: string | null;
2062
+ quantity: number;
2063
+ priceId: string;
2064
+ productName: string;
2065
+ amountMinor: number;
2066
+ currency: string;
2067
+ interval: "week" | "month" | "year" | "one_off";
2068
+ intervalCount: number;
2069
+ slot: "stripe_price_id" | "stripe_empty_price_id";
2070
+ tiers: {
2071
+ mode: "graduated" | "volume";
2072
+ tiers: {
2073
+ upTo: number | null;
2074
+ unitAmountMinor: number;
2075
+ flatAmountMinor?: number | undefined;
2076
+ }[];
2077
+ } | null;
2078
+ }[];
2079
+ discounts: {
2080
+ coupon: string;
2081
+ terms: {
2082
+ id: string;
2083
+ name: string;
2084
+ duration: "once" | "forever" | "repeating";
2085
+ percent_off?: number | undefined;
2086
+ amount_off?: number | undefined;
2087
+ currency?: string | undefined;
2088
+ duration_in_months?: number | undefined;
2089
+ };
2090
+ }[];
2091
+ trialPeriodDays: number | null;
2092
+ metadata: {
2093
+ grooveCheckoutId: string;
2094
+ grooveCustomerId: string;
2095
+ };
2096
+ expiresAt: string;
2097
+ invoiceMode?: InvoiceModeParams | undefined;
2098
+ append?: {
2099
+ subscriptionId: string;
2100
+ customerId: string;
2101
+ sourceItems: {
2102
+ id: string;
2103
+ price_id: string;
2104
+ quantity: number;
2105
+ discounts?: {
2106
+ id: string;
2107
+ coupon: string;
2108
+ start: number;
2109
+ end: number | null;
2110
+ }[] | undefined;
2111
+ }[];
2112
+ prorationDate: number;
2113
+ amountMinor: number;
2114
+ periodStartMs: number;
2115
+ periodEndMs: number;
2116
+ } | undefined;
2117
+ } | null;
2118
+ nativeOffer?: {
2119
+ offerKind: "none" | "introductory" | "promotional";
2120
+ offerId: string | null;
2121
+ discountMinor: number;
2122
+ trialDays: number | null;
2123
+ } | undefined;
2124
+ } | null;
2125
+ operation: {
2126
+ operationId: string;
2127
+ orderId: string;
2128
+ status: "pending" | "failed" | "cancelled" | "complete";
2129
+ executor: "merchant" | "indiana";
2130
+ checkoutUrl: string | null;
2131
+ execution: {
2132
+ type: "purchase";
2133
+ mode: "payment" | "subscription";
2134
+ lineItems: {
2135
+ priceId: string;
2136
+ productVersionId: string;
2137
+ productId: string;
2138
+ quantity: number;
2139
+ unitAmountMinor: number;
2140
+ totalMinor: number;
2141
+ interval: "week" | "month" | "year" | "one_off";
2142
+ intervalCount: number;
2143
+ kind: "fixed" | "prepaid" | "seat";
2144
+ tiers: {
2145
+ mode: "graduated" | "volume";
2146
+ tiers: {
2147
+ upTo: number | null;
2148
+ unitAmountMinor: number;
2149
+ flatAmountMinor?: number | undefined;
2150
+ }[];
2151
+ } | null;
2152
+ }[];
2153
+ catalogAmountMinor: number;
2154
+ discount: {
2155
+ grantId: string;
2156
+ couponId: string;
2157
+ amountMinor: number;
2158
+ terms: {
2159
+ type: "percent";
2160
+ percentOff: number;
2161
+ } | {
2162
+ type: "amount";
2163
+ amountOffMinor: number;
2164
+ currency: string;
2165
+ };
2166
+ duration: {
2167
+ type: "once";
2168
+ } | {
2169
+ type: "forever";
2170
+ } | {
2171
+ type: "repeating";
2172
+ months: number;
2173
+ };
2174
+ } | null;
2175
+ trialPeriodDays: number | null;
2176
+ automaticTax: boolean;
2177
+ provider: "merchant";
2178
+ executor: "merchant";
2179
+ operationId: string;
2180
+ customerId: string;
2181
+ configurationRevision: number;
2182
+ connectionRevision: number;
2183
+ currency: string;
2184
+ expiresAt: string;
2185
+ } | {
1346
2186
  provider: "stripe";
1347
- executor: "indiana" | "merchant";
2187
+ executor: "merchant" | "indiana";
1348
2188
  accountId: string;
1349
2189
  mode: "payment" | "subscription";
1350
2190
  lineItems: {
@@ -1354,7 +2194,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1354
2194
  productName: string;
1355
2195
  amountMinor: number;
1356
2196
  currency: string;
1357
- interval: "month" | "year" | "one_off" | "week";
2197
+ interval: "week" | "month" | "year" | "one_off";
1358
2198
  intervalCount: number;
1359
2199
  slot: "stripe_price_id" | "stripe_empty_price_id";
1360
2200
  tiers: {
@@ -1371,7 +2211,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1371
2211
  terms: {
1372
2212
  id: string;
1373
2213
  name: string;
1374
- duration: "forever" | "once" | "repeating";
2214
+ duration: "once" | "forever" | "repeating";
1375
2215
  percent_off?: number | undefined;
1376
2216
  amount_off?: number | undefined;
1377
2217
  currency?: string | undefined;
@@ -1404,126 +2244,481 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1404
2244
  periodStartMs: number;
1405
2245
  periodEndMs: number;
1406
2246
  } | undefined;
1407
- } | null;
1408
- nativeOffer?: {
1409
- offerKind: "none" | "introductory" | "promotional";
1410
- offerId: string | null;
1411
- discountMinor: number;
1412
- trialDays: number | null;
2247
+ } | null;
2248
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
2249
+ catalogAmountMinor: number;
2250
+ taxMinor: number;
2251
+ totalMinor: number | null;
2252
+ quoteFinalized: boolean;
2253
+ nativePurchase: {
2254
+ type: "native_purchase";
2255
+ receiptId: string;
2256
+ orderId: string;
2257
+ productVersionId: string;
2258
+ provider: "apple" | "google";
2259
+ productId: string;
2260
+ productKind: "credit_pack" | "lifetime" | "membership";
2261
+ replacement: {
2262
+ sourceOrderId: string;
2263
+ sourceProductId: string;
2264
+ policy: "apple_store" | "google_full_price";
2265
+ sourceAccountTokens: string[];
2266
+ } | null;
2267
+ offerKind: "none" | "introductory" | "promotional";
2268
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
2269
+ catalogAmountMinor: number;
2270
+ discountMinor: number;
2271
+ trialDays: number | null;
2272
+ seatBundle: {
2273
+ key: string;
2274
+ quantity: number;
2275
+ }[];
2276
+ applePromotionalOffer: {
2277
+ offerId: string;
2278
+ keyId: string;
2279
+ nonce: string;
2280
+ signature: string;
2281
+ timestamp: number;
2282
+ } | null;
2283
+ appAccountToken?: string | undefined;
2284
+ obfuscatedAccountId?: string | undefined;
2285
+ obfuscatedProfileId?: string | undefined;
2286
+ basePlanId?: string | undefined;
2287
+ offerId?: string | undefined;
2288
+ } | null;
2289
+ append?: boolean | undefined;
2290
+ invoiceMode?: boolean | undefined;
2291
+ confirmedAt?: string | null | undefined;
2292
+ quote?: {
2293
+ operationId: string;
2294
+ entityId: string | null;
2295
+ billingSubscriptionId: string | null;
2296
+ discount: {
2297
+ offerId: string;
2298
+ couponId: string;
2299
+ discount: {
2300
+ type: "percent";
2301
+ percentOff: number;
2302
+ } | {
2303
+ type: "amount";
2304
+ amountOffCents: number;
2305
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
2306
+ };
2307
+ duration: {
2308
+ type: "once";
2309
+ } | {
2310
+ type: "repeating";
2311
+ months: number;
2312
+ } | {
2313
+ type: "forever";
2314
+ };
2315
+ amountMinor: number;
2316
+ allocations: {
2317
+ productVersionId: string;
2318
+ amountMinor: number;
2319
+ }[];
2320
+ expiresAt: string;
2321
+ } | null;
2322
+ charge: {
2323
+ effectiveAt: string;
2324
+ periodEndsAt: string;
2325
+ debitMinor: number;
2326
+ discountMinor: number;
2327
+ taxMinor: number;
2328
+ totalMinor: number;
2329
+ } | null;
2330
+ expiresAt: string;
2331
+ provider: "merchant" | "stripe" | "apple" | "google";
2332
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
2333
+ lines: {
2334
+ lineId: string;
2335
+ productVersionId: string;
2336
+ productName: string;
2337
+ interval: "week" | "month" | "year" | "one_time" | "free";
2338
+ baseAmountMinor: number;
2339
+ seats: {
2340
+ key: string;
2341
+ quantity: number;
2342
+ includedQuantity: number;
2343
+ maximumQuantity: number;
2344
+ unitAmountMinor: number;
2345
+ }[];
2346
+ catalogAmountMinor: number;
2347
+ trial: {
2348
+ days: number;
2349
+ cardRequired: boolean;
2350
+ } | null;
2351
+ intervalCount?: number | undefined;
2352
+ prepaid?: {
2353
+ itemKey: string;
2354
+ internal_feature_id: string;
2355
+ includedAmount: string;
2356
+ quantity: number;
2357
+ terms: {
2358
+ units: string;
2359
+ prices: {
2360
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
2361
+ amountMinor: number;
2362
+ pricing?: {
2363
+ kind: "graduated" | "volume";
2364
+ tiers: {
2365
+ upTo: number | null;
2366
+ unitAmountMinor: number;
2367
+ flatAmountMinor?: number | undefined;
2368
+ }[];
2369
+ } | undefined;
2370
+ }[];
2371
+ minimumQuantity: number;
2372
+ maximumQuantity: number;
2373
+ };
2374
+ unitAmountMinor: number;
2375
+ productId: string | null;
2376
+ priceId: string | null;
2377
+ pricing?: {
2378
+ kind: "graduated" | "volume";
2379
+ tiers: {
2380
+ upTo: number | null;
2381
+ unitAmountMinor: number;
2382
+ flatAmountMinor?: number | undefined;
2383
+ }[];
2384
+ } | undefined;
2385
+ }[] | undefined;
2386
+ }[];
2387
+ catalogAmountMinor: number;
2388
+ automaticTax: boolean;
2389
+ execution: {
2390
+ type: "purchase";
2391
+ mode: "payment" | "subscription";
2392
+ lineItems: {
2393
+ priceId: string;
2394
+ productVersionId: string;
2395
+ productId: string;
2396
+ quantity: number;
2397
+ unitAmountMinor: number;
2398
+ totalMinor: number;
2399
+ interval: "week" | "month" | "year" | "one_off";
2400
+ intervalCount: number;
2401
+ kind: "fixed" | "prepaid" | "seat";
2402
+ tiers: {
2403
+ mode: "graduated" | "volume";
2404
+ tiers: {
2405
+ upTo: number | null;
2406
+ unitAmountMinor: number;
2407
+ flatAmountMinor?: number | undefined;
2408
+ }[];
2409
+ } | null;
2410
+ }[];
2411
+ catalogAmountMinor: number;
2412
+ discount: {
2413
+ grantId: string;
2414
+ couponId: string;
2415
+ amountMinor: number;
2416
+ terms: {
2417
+ type: "percent";
2418
+ percentOff: number;
2419
+ } | {
2420
+ type: "amount";
2421
+ amountOffMinor: number;
2422
+ currency: string;
2423
+ };
2424
+ duration: {
2425
+ type: "once";
2426
+ } | {
2427
+ type: "forever";
2428
+ } | {
2429
+ type: "repeating";
2430
+ months: number;
2431
+ };
2432
+ } | null;
2433
+ trialPeriodDays: number | null;
2434
+ automaticTax: boolean;
2435
+ provider: "merchant";
2436
+ executor: "merchant";
2437
+ operationId: string;
2438
+ customerId: string;
2439
+ configurationRevision: number;
2440
+ connectionRevision: number;
2441
+ currency: string;
2442
+ expiresAt: string;
2443
+ } | {
2444
+ provider: "stripe";
2445
+ executor: "merchant" | "indiana";
2446
+ accountId: string;
2447
+ mode: "payment" | "subscription";
2448
+ lineItems: {
2449
+ price: string | null;
2450
+ quantity: number;
2451
+ priceId: string;
2452
+ productName: string;
2453
+ amountMinor: number;
2454
+ currency: string;
2455
+ interval: "week" | "month" | "year" | "one_off";
2456
+ intervalCount: number;
2457
+ slot: "stripe_price_id" | "stripe_empty_price_id";
2458
+ tiers: {
2459
+ mode: "graduated" | "volume";
2460
+ tiers: {
2461
+ upTo: number | null;
2462
+ unitAmountMinor: number;
2463
+ flatAmountMinor?: number | undefined;
2464
+ }[];
2465
+ } | null;
2466
+ }[];
2467
+ discounts: {
2468
+ coupon: string;
2469
+ terms: {
2470
+ id: string;
2471
+ name: string;
2472
+ duration: "once" | "forever" | "repeating";
2473
+ percent_off?: number | undefined;
2474
+ amount_off?: number | undefined;
2475
+ currency?: string | undefined;
2476
+ duration_in_months?: number | undefined;
2477
+ };
2478
+ }[];
2479
+ trialPeriodDays: number | null;
2480
+ metadata: {
2481
+ grooveCheckoutId: string;
2482
+ grooveCustomerId: string;
2483
+ };
2484
+ expiresAt: string;
2485
+ invoiceMode?: InvoiceModeParams | undefined;
2486
+ append?: {
2487
+ subscriptionId: string;
2488
+ customerId: string;
2489
+ sourceItems: {
2490
+ id: string;
2491
+ price_id: string;
2492
+ quantity: number;
2493
+ discounts?: {
2494
+ id: string;
2495
+ coupon: string;
2496
+ start: number;
2497
+ end: number | null;
2498
+ }[] | undefined;
2499
+ }[];
2500
+ prorationDate: number;
2501
+ amountMinor: number;
2502
+ periodStartMs: number;
2503
+ periodEndMs: number;
2504
+ } | undefined;
2505
+ } | null;
2506
+ nativeOffer?: {
2507
+ offerKind: "none" | "introductory" | "promotional";
2508
+ offerId: string | null;
2509
+ discountMinor: number;
2510
+ trialDays: number | null;
2511
+ } | undefined;
1413
2512
  } | undefined;
1414
- } | null;
1415
- operation: {
1416
- operationId: string;
1417
- orderId: string;
1418
- status: "pending" | "failed" | "complete" | "cancelled";
1419
- executor: "indiana" | "merchant";
1420
- checkoutUrl: string | null;
1421
- execution: {
1422
- provider: "stripe";
1423
- executor: "indiana" | "merchant";
1424
- accountId: string;
1425
- mode: "payment" | "subscription";
1426
- lineItems: {
1427
- price: string | null;
1428
- quantity: number;
1429
- priceId: string;
1430
- productName: string;
1431
- amountMinor: number;
1432
- currency: string;
1433
- interval: "month" | "year" | "one_off" | "week";
1434
- intervalCount: number;
1435
- slot: "stripe_price_id" | "stripe_empty_price_id";
1436
- tiers: {
1437
- mode: "graduated" | "volume";
2513
+ merchantExecution?: {
2514
+ type: "purchase";
2515
+ merchantOrderId: string | null;
2516
+ paymentStatus: "unknown" | "not_started" | "pending" | "failed" | "succeeded" | "not_required" | "expired";
2517
+ checkoutUrl: string | null;
2518
+ checkoutExpiresAt: string | null;
2519
+ operationId: string;
2520
+ customerId: string;
2521
+ merchantExecutionId: string;
2522
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
2523
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
2524
+ updatedAt: string;
2525
+ problem: {
2526
+ phase: "payment" | "execution" | "fulfillment" | "recording";
2527
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
2528
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
2529
+ retryable: boolean;
2530
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
2531
+ } | null;
2532
+ pollAfterMs: number | null;
2533
+ } | {
2534
+ type: "subscription_change";
2535
+ status: "unknown" | "pending" | "applied" | "failed" | "scheduled";
2536
+ merchantSubscriptionId: string;
2537
+ scheduledFor: string | null;
2538
+ operationId: string;
2539
+ customerId: string;
2540
+ merchantExecutionId: string;
2541
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
2542
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
2543
+ updatedAt: string;
2544
+ problem: {
2545
+ phase: "payment" | "execution" | "fulfillment" | "recording";
2546
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
2547
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
2548
+ retryable: boolean;
2549
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
2550
+ } | null;
2551
+ pollAfterMs: number | null;
2552
+ } | {
2553
+ type: "refund";
2554
+ status: "unknown" | "pending" | "failed" | "succeeded";
2555
+ merchantRefundId: string | null;
2556
+ operationId: string;
2557
+ customerId: string;
2558
+ merchantExecutionId: string;
2559
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
2560
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
2561
+ updatedAt: string;
2562
+ problem: {
2563
+ phase: "payment" | "execution" | "fulfillment" | "recording";
2564
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
2565
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
2566
+ retryable: boolean;
2567
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
2568
+ } | null;
2569
+ pollAfterMs: number | null;
2570
+ } | null | undefined;
2571
+ problem?: {
2572
+ phase: "payment" | "execution" | "fulfillment" | "recording";
2573
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
2574
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
2575
+ retryable: boolean;
2576
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
2577
+ } | null | undefined;
2578
+ authority?: {
2579
+ scope: {
2580
+ projectId: string;
2581
+ environmentId: string;
2582
+ environment: "sandbox" | "live";
2583
+ };
2584
+ operationId: string;
2585
+ customerId: string;
2586
+ confirmedAt: string | null;
2587
+ initialExecutionAllowed: boolean;
2588
+ instruction: {
2589
+ type: "purchase";
2590
+ mode: "payment" | "subscription";
2591
+ lineItems: {
2592
+ priceId: string;
2593
+ productVersionId: string;
2594
+ productId: string;
2595
+ quantity: number;
2596
+ unitAmountMinor: number;
2597
+ totalMinor: number;
2598
+ interval: "week" | "month" | "year" | "one_off";
2599
+ intervalCount: number;
2600
+ kind: "fixed" | "prepaid" | "seat";
1438
2601
  tiers: {
1439
- upTo: number | null;
1440
- unitAmountMinor: number;
1441
- flatAmountMinor?: number | undefined;
1442
- }[];
2602
+ mode: "graduated" | "volume";
2603
+ tiers: {
2604
+ upTo: number | null;
2605
+ unitAmountMinor: number;
2606
+ flatAmountMinor?: number | undefined;
2607
+ }[];
2608
+ } | null;
2609
+ }[];
2610
+ catalogAmountMinor: number;
2611
+ discount: {
2612
+ grantId: string;
2613
+ couponId: string;
2614
+ amountMinor: number;
2615
+ terms: {
2616
+ type: "percent";
2617
+ percentOff: number;
2618
+ } | {
2619
+ type: "amount";
2620
+ amountOffMinor: number;
2621
+ currency: string;
2622
+ };
2623
+ duration: {
2624
+ type: "once";
2625
+ } | {
2626
+ type: "forever";
2627
+ } | {
2628
+ type: "repeating";
2629
+ months: number;
2630
+ };
1443
2631
  } | null;
1444
- }[];
1445
- discounts: {
1446
- coupon: string;
1447
- terms: {
1448
- id: string;
1449
- name: string;
1450
- duration: "forever" | "once" | "repeating";
1451
- percent_off?: number | undefined;
1452
- amount_off?: number | undefined;
1453
- currency?: string | undefined;
1454
- duration_in_months?: number | undefined;
1455
- };
1456
- }[];
1457
- trialPeriodDays: number | null;
1458
- metadata: {
1459
- grooveCheckoutId: string;
1460
- grooveCustomerId: string;
1461
- };
1462
- expiresAt: string;
1463
- invoiceMode?: InvoiceModeParams | undefined;
1464
- append?: {
1465
- subscriptionId: string;
2632
+ trialPeriodDays: number | null;
2633
+ automaticTax: boolean;
2634
+ provider: "merchant";
2635
+ executor: "merchant";
2636
+ operationId: string;
1466
2637
  customerId: string;
1467
- sourceItems: {
1468
- id: string;
1469
- price_id: string;
2638
+ configurationRevision: number;
2639
+ connectionRevision: number;
2640
+ currency: string;
2641
+ expiresAt: string;
2642
+ } | {
2643
+ type: "subscription_change";
2644
+ subscriptionId: string;
2645
+ merchantSubscriptionId: string;
2646
+ membershipId: string;
2647
+ subscriptionAction: "update" | "cancel" | "schedule" | "release";
2648
+ supersedesOperationId: string | null;
2649
+ change: {
2650
+ type: "cancel";
2651
+ } | {
2652
+ type: "uncancel";
2653
+ } | {
2654
+ type: "plan";
2655
+ productVersionId: string;
2656
+ } | {
2657
+ type: "seats";
2658
+ licenseKey: string;
2659
+ quantity: number;
2660
+ } | {
2661
+ type: "quantity";
2662
+ internal_feature_id: string;
2663
+ quantity: number;
2664
+ } | {
2665
+ type: "billing_cycle";
2666
+ billingCycleAnchor: number | "now";
2667
+ };
2668
+ timing: "immediate" | "renewal";
2669
+ effectiveAt: string;
2670
+ creditMinor: number;
2671
+ debitMinor: number;
2672
+ totalMinor: number;
2673
+ discountMinor: number;
2674
+ taxMinor: number;
2675
+ proration: "none" | "create_prorations" | "always_invoice";
2676
+ lineItems: {
2677
+ priceId: string;
2678
+ productVersionId: string;
2679
+ productId: string;
2680
+ unitAmountMinor: number;
2681
+ totalMinor: number;
2682
+ interval: "week" | "month" | "year" | "one_off";
2683
+ intervalCount: number;
2684
+ kind: "fixed" | "prepaid" | "seat";
2685
+ tiers: {
2686
+ mode: "graduated" | "volume";
2687
+ tiers: {
2688
+ upTo: number | null;
2689
+ unitAmountMinor: number;
2690
+ flatAmountMinor?: number | undefined;
2691
+ }[];
2692
+ } | null;
1470
2693
  quantity: number;
1471
- discounts?: {
1472
- id: string;
1473
- coupon: string;
1474
- start: number;
1475
- end: number | null;
1476
- }[] | undefined;
1477
2694
  }[];
1478
- prorationDate: number;
2695
+ removePriceIds: string[];
2696
+ provider: "merchant";
2697
+ executor: "merchant";
2698
+ operationId: string;
2699
+ customerId: string;
2700
+ configurationRevision: number;
2701
+ connectionRevision: number;
2702
+ currency: string;
2703
+ expiresAt: string;
2704
+ } | {
2705
+ type: "refund";
2706
+ invoiceId: string;
2707
+ merchantInvoiceId: string;
1479
2708
  amountMinor: number;
1480
- periodStartMs: number;
1481
- periodEndMs: number;
1482
- } | undefined;
1483
- } | null;
1484
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1485
- catalogAmountMinor: number;
1486
- taxMinor: number;
1487
- totalMinor: number | null;
1488
- quoteFinalized: boolean;
1489
- nativePurchase: {
1490
- type: "native_purchase";
1491
- receiptId: string;
1492
- orderId: string;
1493
- productVersionId: string;
1494
- provider: "apple" | "google";
1495
- productId: string;
1496
- productKind: "lifetime" | "membership" | "credit_pack";
1497
- replacement: {
1498
- sourceOrderId: string;
1499
- sourceProductId: string;
1500
- policy: "apple_store" | "google_full_price";
1501
- sourceAccountTokens: string[];
1502
- } | null;
1503
- offerKind: "none" | "introductory" | "promotional";
1504
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
1505
- catalogAmountMinor: number;
1506
- discountMinor: number;
1507
- trialDays: number | null;
1508
- seatBundle: {
1509
- key: string;
1510
- quantity: number;
1511
- }[];
1512
- applePromotionalOffer: {
1513
- offerId: string;
1514
- keyId: string;
1515
- nonce: string;
1516
- signature: string;
1517
- timestamp: number;
1518
- } | null;
1519
- appAccountToken?: string | undefined;
1520
- obfuscatedAccountId?: string | undefined;
1521
- obfuscatedProfileId?: string | undefined;
1522
- basePlanId?: string | undefined;
1523
- offerId?: string | undefined;
1524
- } | null;
1525
- append?: boolean | undefined;
1526
- invoiceMode?: boolean | undefined;
2709
+ mode: "full" | "partial";
2710
+ entitlementAction: "retain" | "revoke";
2711
+ cancelSubscriptions: string[];
2712
+ provider: "merchant";
2713
+ executor: "merchant";
2714
+ operationId: string;
2715
+ customerId: string;
2716
+ configurationRevision: number;
2717
+ connectionRevision: number;
2718
+ currency: string;
2719
+ expiresAt: string;
2720
+ };
2721
+ } | undefined;
1527
2722
  } | null;
1528
2723
  canReselect?: boolean | undefined;
1529
2724
  } | undefined;
@@ -1558,7 +2753,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1558
2753
  primary: string;
1559
2754
  background: string;
1560
2755
  text: string;
1561
- radius: "none" | "sm" | "md" | "lg" | "full";
2756
+ radius: "none" | "full" | "sm" | "md" | "lg";
1562
2757
  font: "system" | "serif" | "rounded" | "mono";
1563
2758
  };
1564
2759
  pages: {
@@ -1569,7 +2764,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1569
2764
  primary: string;
1570
2765
  background: string;
1571
2766
  text: string;
1572
- radius: "none" | "sm" | "md" | "lg" | "full";
2767
+ radius: "none" | "full" | "sm" | "md" | "lg";
1573
2768
  font: "system" | "serif" | "rounded" | "mono";
1574
2769
  } | undefined;
1575
2770
  editorPosition?: {
@@ -1633,7 +2828,7 @@ declare function renewFunnelRun(options: IndianaServerOptions, input: {
1633
2828
  purchases: {
1634
2829
  receiptId: string;
1635
2830
  operationId: string;
1636
- status: "unknown" | "pending" | "failed" | "complete" | "cancelled";
2831
+ status: "unknown" | "pending" | "failed" | "cancelled" | "complete";
1637
2832
  }[];
1638
2833
  } | undefined;
1639
2834
  runToken?: string | undefined;
@@ -1887,7 +3082,7 @@ declare function createFunnelLocalEvaluator(options: FunnelLocalEvaluatorOptions
1887
3082
  entry: string;
1888
3083
  nodes: {
1889
3084
  id: string;
1890
- type: "output" | "feature" | "split" | "action" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
3085
+ type: "output" | "action" | "split" | "feature" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
1891
3086
  outputs: Record<string, string>;
1892
3087
  writes: Record<string, string>;
1893
3088
  resources: {
@@ -2139,7 +3334,7 @@ declare function createSynchronizedFunnelLocalEvaluator(configuration: Configura
2139
3334
  entry: string;
2140
3335
  nodes: {
2141
3336
  id: string;
2142
- type: "output" | "feature" | "split" | "action" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
3337
+ type: "output" | "action" | "split" | "feature" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
2143
3338
  outputs: Record<string, string>;
2144
3339
  writes: Record<string, string>;
2145
3340
  resources: {
@@ -2429,7 +3624,7 @@ declare function createFunnelDecisionClient(options: IndianaServerOptions & {
2429
3624
  entry: string;
2430
3625
  nodes: {
2431
3626
  id: string;
2432
- type: "output" | "feature" | "split" | "action" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
3627
+ type: "output" | "action" | "split" | "feature" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
2433
3628
  outputs: Record<string, string>;
2434
3629
  writes: Record<string, string>;
2435
3630
  resources: {
@@ -2667,7 +3862,7 @@ declare function createFunnelDecisionClient(options: IndianaServerOptions & {
2667
3862
  entry: string;
2668
3863
  nodes: {
2669
3864
  id: string;
2670
- type: "output" | "feature" | "split" | "action" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
3865
+ type: "output" | "action" | "split" | "feature" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
2671
3866
  outputs: Record<string, string>;
2672
3867
  writes: Record<string, string>;
2673
3868
  resources: {
@@ -2695,7 +3890,7 @@ declare function createFunnelDecisionClient(options: IndianaServerOptions & {
2695
3890
  entry: string;
2696
3891
  nodes: {
2697
3892
  id: string;
2698
- type: "output" | "feature" | "split" | "action" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
3893
+ type: "output" | "action" | "split" | "feature" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
2699
3894
  outputs: Record<string, string>;
2700
3895
  writes: Record<string, string>;
2701
3896
  resources: {
@@ -3167,7 +4362,7 @@ declare function createNativeReceiptClient(options: IndianaServerOptions): {
3167
4362
  requestId: string;
3168
4363
  orderId: string;
3169
4364
  receiptId: string;
3170
- orderStatus: "pending" | "paid" | "failed" | "trialing" | "cancelled" | "created";
4365
+ orderStatus: "pending" | "failed" | "trialing" | "paid" | "cancelled" | "created";
3171
4366
  refunded: boolean;
3172
4367
  nativeCompletion?: {
3173
4368
  orderId: string;
@@ -3235,8 +4430,8 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3235
4430
  revision: number;
3236
4431
  visit: number;
3237
4432
  nodeId: string;
3238
- nodeType: "output" | "feature" | "split" | "action" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
3239
- status: "running" | "failed" | "completed" | "closed" | "ineligible" | "waiting";
4433
+ nodeType: "output" | "action" | "split" | "feature" | "condition" | "entry" | "coupon" | "end" | "screen" | "offering" | "coupons" | "external_page" | "wait";
4434
+ status: "failed" | "running" | "completed" | "closed" | "ineligible" | "waiting";
3240
4435
  stopped: boolean;
3241
4436
  canBack: boolean;
3242
4437
  authenticated: boolean;
@@ -3268,7 +4463,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3268
4463
  primary: string;
3269
4464
  background: string;
3270
4465
  text: string;
3271
- radius: "none" | "sm" | "md" | "lg" | "full";
4466
+ radius: "none" | "full" | "sm" | "md" | "lg";
3272
4467
  font: "system" | "serif" | "rounded" | "mono";
3273
4468
  };
3274
4469
  pages: {
@@ -3279,7 +4474,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3279
4474
  primary: string;
3280
4475
  background: string;
3281
4476
  text: string;
3282
- radius: "none" | "sm" | "md" | "lg" | "full";
4477
+ radius: "none" | "full" | "sm" | "md" | "lg";
3283
4478
  font: "system" | "serif" | "rounded" | "mono";
3284
4479
  } | undefined;
3285
4480
  editorPosition?: {
@@ -3400,6 +4595,33 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3400
4595
  price: string;
3401
4596
  period: string;
3402
4597
  currency?: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON" | undefined;
4598
+ amountMinor?: number | undefined;
4599
+ interval?: "week" | "month" | "year" | "one_time" | "free" | undefined;
4600
+ intervalCount?: number | undefined;
4601
+ prepaid?: {
4602
+ internalFeatureId: string;
4603
+ name: string;
4604
+ includedAmount: string;
4605
+ reset: "week" | "month" | "year" | "hour" | "day" | "lifetime";
4606
+ resetCount: number;
4607
+ terms: {
4608
+ units: string;
4609
+ prices: {
4610
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4611
+ amountMinor: number;
4612
+ pricing?: {
4613
+ kind: "graduated" | "volume";
4614
+ tiers: {
4615
+ upTo: number | null;
4616
+ unitAmountMinor: number;
4617
+ flatAmountMinor?: number | undefined;
4618
+ }[];
4619
+ } | undefined;
4620
+ }[];
4621
+ minimumQuantity: number;
4622
+ maximumQuantity: number;
4623
+ };
4624
+ }[] | undefined;
3403
4625
  }>;
3404
4626
  pickers: Record<string, {
3405
4627
  options: string[];
@@ -3422,15 +4644,23 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3422
4644
  productId: string;
3423
4645
  productVersionId: string;
3424
4646
  name: string;
3425
- action: "upgrade" | "purchase" | "addon" | "topup";
4647
+ action: "purchase" | "upgrade" | "addon" | "topup";
3426
4648
  membershipId: string | null;
3427
4649
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
3428
4650
  amountMinor: string;
3429
- interval: "free" | "month" | "year" | "week" | "one_time";
4651
+ interval: "week" | "month" | "year" | "one_time" | "free";
3430
4652
  intervalCount: number;
3431
4653
  }[];
3432
4654
  } | null;
3433
4655
  } | undefined;
4656
+ quantities?: Record<string, {
4657
+ minimum: number;
4658
+ maximum: number;
4659
+ step: number;
4660
+ value: number;
4661
+ label: string;
4662
+ available: boolean;
4663
+ }> | undefined;
3434
4664
  };
3435
4665
  customerData: {
3436
4666
  nodes: Record<string, {
@@ -3518,7 +4748,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3518
4748
  cursor: {
3519
4749
  at: string;
3520
4750
  id: string;
3521
- type: "usage" | "source" | "invoice" | "debt" | "transaction" | "settlement";
4751
+ type: "invoice" | "usage" | "source" | "debt" | "transaction" | "settlement";
3522
4752
  };
3523
4753
  } | {
3524
4754
  kind: "billing";
@@ -3535,6 +4765,18 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3535
4765
  version: number;
3536
4766
  document: {
3537
4767
  kind: "paywall";
4768
+ presentation: {
4769
+ type: "modal";
4770
+ size: "sm" | "md" | "lg";
4771
+ } | {
4772
+ type: "sheet";
4773
+ size: "sm" | "md" | "lg";
4774
+ } | {
4775
+ type: "fullscreen";
4776
+ } | {
4777
+ type: "inline";
4778
+ };
4779
+ offeringVersionId: string | null;
3538
4780
  name: string;
3539
4781
  products: {
3540
4782
  items: {
@@ -3554,17 +4796,6 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3554
4796
  }[];
3555
4797
  } | undefined;
3556
4798
  };
3557
- presentation: {
3558
- type: "modal";
3559
- size: "sm" | "md" | "lg";
3560
- } | {
3561
- type: "sheet";
3562
- size: "sm" | "md" | "lg";
3563
- } | {
3564
- type: "fullscreen";
3565
- } | {
3566
- type: "inline";
3567
- };
3568
4799
  screen: {
3569
4800
  kind: "screen";
3570
4801
  schemaVersion: 4;
@@ -3585,7 +4816,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3585
4816
  primary: string;
3586
4817
  background: string;
3587
4818
  text: string;
3588
- radius: "none" | "sm" | "md" | "lg" | "full";
4819
+ radius: "none" | "full" | "sm" | "md" | "lg";
3589
4820
  font: "system" | "serif" | "rounded" | "mono";
3590
4821
  };
3591
4822
  pages: {
@@ -3596,7 +4827,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3596
4827
  primary: string;
3597
4828
  background: string;
3598
4829
  text: string;
3599
- radius: "none" | "sm" | "md" | "lg" | "full";
4830
+ radius: "none" | "full" | "sm" | "md" | "lg";
3600
4831
  font: "system" | "serif" | "rounded" | "mono";
3601
4832
  } | undefined;
3602
4833
  editorPosition?: {
@@ -3645,7 +4876,6 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3645
4876
  initialPageId?: string | undefined;
3646
4877
  };
3647
4878
  schemaVersion: 3;
3648
- offeringVersionId: string | null;
3649
4879
  buttons: Record<string, {
3650
4880
  type: "checkout";
3651
4881
  product: {
@@ -3726,6 +4956,33 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3726
4956
  price: string;
3727
4957
  period: string;
3728
4958
  currency?: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON" | undefined;
4959
+ amountMinor?: number | undefined;
4960
+ interval?: "week" | "month" | "year" | "one_time" | "free" | undefined;
4961
+ intervalCount?: number | undefined;
4962
+ prepaid?: {
4963
+ internalFeatureId: string;
4964
+ name: string;
4965
+ includedAmount: string;
4966
+ reset: "week" | "month" | "year" | "hour" | "day" | "lifetime";
4967
+ resetCount: number;
4968
+ terms: {
4969
+ units: string;
4970
+ prices: {
4971
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4972
+ amountMinor: number;
4973
+ pricing?: {
4974
+ kind: "graduated" | "volume";
4975
+ tiers: {
4976
+ upTo: number | null;
4977
+ unitAmountMinor: number;
4978
+ flatAmountMinor?: number | undefined;
4979
+ }[];
4980
+ } | undefined;
4981
+ }[];
4982
+ minimumQuantity: number;
4983
+ maximumQuantity: number;
4984
+ };
4985
+ }[] | undefined;
3729
4986
  }>;
3730
4987
  pickers: Record<string, {
3731
4988
  options: string[];
@@ -3748,15 +5005,23 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3748
5005
  productId: string;
3749
5006
  productVersionId: string;
3750
5007
  name: string;
3751
- action: "upgrade" | "purchase" | "addon" | "topup";
5008
+ action: "purchase" | "upgrade" | "addon" | "topup";
3752
5009
  membershipId: string | null;
3753
5010
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
3754
5011
  amountMinor: string;
3755
- interval: "free" | "month" | "year" | "week" | "one_time";
5012
+ interval: "week" | "month" | "year" | "one_time" | "free";
3756
5013
  intervalCount: number;
3757
5014
  }[];
3758
5015
  } | null;
3759
5016
  } | undefined;
5017
+ quantities?: Record<string, {
5018
+ minimum: number;
5019
+ maximum: number;
5020
+ step: number;
5021
+ value: number;
5022
+ label: string;
5023
+ available: boolean;
5024
+ }> | undefined;
3760
5025
  };
3761
5026
  check: {
3762
5027
  internal_feature_id: string;
@@ -3771,11 +5036,11 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3771
5036
  productId: string;
3772
5037
  productVersionId: string;
3773
5038
  name: string;
3774
- action: "upgrade" | "purchase" | "addon" | "topup";
5039
+ action: "purchase" | "upgrade" | "addon" | "topup";
3775
5040
  membershipId: string | null;
3776
5041
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
3777
5042
  amountMinor: string;
3778
- interval: "free" | "month" | "year" | "week" | "one_time";
5043
+ interval: "week" | "month" | "year" | "one_time" | "free";
3779
5044
  intervalCount: number;
3780
5045
  }[];
3781
5046
  } | null;
@@ -3806,18 +5071,15 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3806
5071
  productId: string;
3807
5072
  productVersionId: string;
3808
5073
  name: string;
3809
- action: "upgrade" | "purchase" | "addon" | "topup";
5074
+ action: "purchase" | "upgrade" | "addon" | "topup";
3810
5075
  membershipId: string | null;
3811
5076
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
3812
5077
  amountMinor: string;
3813
- interval: "free" | "month" | "year" | "week" | "one_time";
5078
+ interval: "week" | "month" | "year" | "one_time" | "free";
3814
5079
  intervalCount: number;
3815
5080
  }[];
3816
5081
  } | null;
3817
5082
  } | null;
3818
- id: string;
3819
- version: number;
3820
- paywallId: string;
3821
5083
  capabilities: {
3822
5084
  nodes: Record<string, {
3823
5085
  base: {
@@ -3872,6 +5134,33 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3872
5134
  price: string;
3873
5135
  period: string;
3874
5136
  currency?: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON" | undefined;
5137
+ amountMinor?: number | undefined;
5138
+ interval?: "week" | "month" | "year" | "one_time" | "free" | undefined;
5139
+ intervalCount?: number | undefined;
5140
+ prepaid?: {
5141
+ internalFeatureId: string;
5142
+ name: string;
5143
+ includedAmount: string;
5144
+ reset: "week" | "month" | "year" | "hour" | "day" | "lifetime";
5145
+ resetCount: number;
5146
+ terms: {
5147
+ units: string;
5148
+ prices: {
5149
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
5150
+ amountMinor: number;
5151
+ pricing?: {
5152
+ kind: "graduated" | "volume";
5153
+ tiers: {
5154
+ upTo: number | null;
5155
+ unitAmountMinor: number;
5156
+ flatAmountMinor?: number | undefined;
5157
+ }[];
5158
+ } | undefined;
5159
+ }[];
5160
+ minimumQuantity: number;
5161
+ maximumQuantity: number;
5162
+ };
5163
+ }[] | undefined;
3875
5164
  }>;
3876
5165
  pickers: Record<string, {
3877
5166
  options: string[];
@@ -3894,16 +5183,27 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3894
5183
  productId: string;
3895
5184
  productVersionId: string;
3896
5185
  name: string;
3897
- action: "upgrade" | "purchase" | "addon" | "topup";
5186
+ action: "purchase" | "upgrade" | "addon" | "topup";
3898
5187
  membershipId: string | null;
3899
5188
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
3900
5189
  amountMinor: string;
3901
- interval: "free" | "month" | "year" | "week" | "one_time";
5190
+ interval: "week" | "month" | "year" | "one_time" | "free";
3902
5191
  intervalCount: number;
3903
5192
  }[];
3904
5193
  } | null;
3905
5194
  } | undefined;
5195
+ quantities?: Record<string, {
5196
+ minimum: number;
5197
+ maximum: number;
5198
+ step: number;
5199
+ value: number;
5200
+ label: string;
5201
+ available: boolean;
5202
+ }> | undefined;
3906
5203
  };
5204
+ id: string;
5205
+ version: number;
5206
+ paywallId: string;
3907
5207
  content: {
3908
5208
  environmentId: string;
3909
5209
  offeringVersionId: string;
@@ -3956,13 +5256,13 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
3956
5256
  totalMinor: number;
3957
5257
  } | null;
3958
5258
  expiresAt: string;
3959
- provider: "stripe" | "apple" | "google";
5259
+ provider: "merchant" | "stripe" | "apple" | "google";
3960
5260
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
3961
5261
  lines: {
3962
5262
  lineId: string;
3963
5263
  productVersionId: string;
3964
5264
  productName: string;
3965
- interval: "free" | "month" | "year" | "week" | "one_time";
5265
+ interval: "week" | "month" | "year" | "one_time" | "free";
3966
5266
  baseAmountMinor: number;
3967
5267
  seats: {
3968
5268
  key: string;
@@ -4015,8 +5315,62 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4015
5315
  catalogAmountMinor: number;
4016
5316
  automaticTax: boolean;
4017
5317
  execution: {
5318
+ type: "purchase";
5319
+ mode: "payment" | "subscription";
5320
+ lineItems: {
5321
+ priceId: string;
5322
+ productVersionId: string;
5323
+ productId: string;
5324
+ quantity: number;
5325
+ unitAmountMinor: number;
5326
+ totalMinor: number;
5327
+ interval: "week" | "month" | "year" | "one_off";
5328
+ intervalCount: number;
5329
+ kind: "fixed" | "prepaid" | "seat";
5330
+ tiers: {
5331
+ mode: "graduated" | "volume";
5332
+ tiers: {
5333
+ upTo: number | null;
5334
+ unitAmountMinor: number;
5335
+ flatAmountMinor?: number | undefined;
5336
+ }[];
5337
+ } | null;
5338
+ }[];
5339
+ catalogAmountMinor: number;
5340
+ discount: {
5341
+ grantId: string;
5342
+ couponId: string;
5343
+ amountMinor: number;
5344
+ terms: {
5345
+ type: "percent";
5346
+ percentOff: number;
5347
+ } | {
5348
+ type: "amount";
5349
+ amountOffMinor: number;
5350
+ currency: string;
5351
+ };
5352
+ duration: {
5353
+ type: "once";
5354
+ } | {
5355
+ type: "forever";
5356
+ } | {
5357
+ type: "repeating";
5358
+ months: number;
5359
+ };
5360
+ } | null;
5361
+ trialPeriodDays: number | null;
5362
+ automaticTax: boolean;
5363
+ provider: "merchant";
5364
+ executor: "merchant";
5365
+ operationId: string;
5366
+ customerId: string;
5367
+ configurationRevision: number;
5368
+ connectionRevision: number;
5369
+ currency: string;
5370
+ expiresAt: string;
5371
+ } | {
4018
5372
  provider: "stripe";
4019
- executor: "indiana" | "merchant";
5373
+ executor: "merchant" | "indiana";
4020
5374
  accountId: string;
4021
5375
  mode: "payment" | "subscription";
4022
5376
  lineItems: {
@@ -4026,7 +5380,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4026
5380
  productName: string;
4027
5381
  amountMinor: number;
4028
5382
  currency: string;
4029
- interval: "month" | "year" | "one_off" | "week";
5383
+ interval: "week" | "month" | "year" | "one_off";
4030
5384
  intervalCount: number;
4031
5385
  slot: "stripe_price_id" | "stripe_empty_price_id";
4032
5386
  tiers: {
@@ -4043,7 +5397,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4043
5397
  terms: {
4044
5398
  id: string;
4045
5399
  name: string;
4046
- duration: "forever" | "once" | "repeating";
5400
+ duration: "once" | "forever" | "repeating";
4047
5401
  percent_off?: number | undefined;
4048
5402
  amount_off?: number | undefined;
4049
5403
  currency?: string | undefined;
@@ -4087,12 +5441,66 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4087
5441
  operation: {
4088
5442
  operationId: string;
4089
5443
  orderId: string;
4090
- status: "pending" | "failed" | "complete" | "cancelled";
4091
- executor: "indiana" | "merchant";
5444
+ status: "pending" | "failed" | "cancelled" | "complete";
5445
+ executor: "merchant" | "indiana";
4092
5446
  checkoutUrl: string | null;
4093
5447
  execution: {
5448
+ type: "purchase";
5449
+ mode: "payment" | "subscription";
5450
+ lineItems: {
5451
+ priceId: string;
5452
+ productVersionId: string;
5453
+ productId: string;
5454
+ quantity: number;
5455
+ unitAmountMinor: number;
5456
+ totalMinor: number;
5457
+ interval: "week" | "month" | "year" | "one_off";
5458
+ intervalCount: number;
5459
+ kind: "fixed" | "prepaid" | "seat";
5460
+ tiers: {
5461
+ mode: "graduated" | "volume";
5462
+ tiers: {
5463
+ upTo: number | null;
5464
+ unitAmountMinor: number;
5465
+ flatAmountMinor?: number | undefined;
5466
+ }[];
5467
+ } | null;
5468
+ }[];
5469
+ catalogAmountMinor: number;
5470
+ discount: {
5471
+ grantId: string;
5472
+ couponId: string;
5473
+ amountMinor: number;
5474
+ terms: {
5475
+ type: "percent";
5476
+ percentOff: number;
5477
+ } | {
5478
+ type: "amount";
5479
+ amountOffMinor: number;
5480
+ currency: string;
5481
+ };
5482
+ duration: {
5483
+ type: "once";
5484
+ } | {
5485
+ type: "forever";
5486
+ } | {
5487
+ type: "repeating";
5488
+ months: number;
5489
+ };
5490
+ } | null;
5491
+ trialPeriodDays: number | null;
5492
+ automaticTax: boolean;
5493
+ provider: "merchant";
5494
+ executor: "merchant";
5495
+ operationId: string;
5496
+ customerId: string;
5497
+ configurationRevision: number;
5498
+ connectionRevision: number;
5499
+ currency: string;
5500
+ expiresAt: string;
5501
+ } | {
4094
5502
  provider: "stripe";
4095
- executor: "indiana" | "merchant";
5503
+ executor: "merchant" | "indiana";
4096
5504
  accountId: string;
4097
5505
  mode: "payment" | "subscription";
4098
5506
  lineItems: {
@@ -4102,7 +5510,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4102
5510
  productName: string;
4103
5511
  amountMinor: number;
4104
5512
  currency: string;
4105
- interval: "month" | "year" | "one_off" | "week";
5513
+ interval: "week" | "month" | "year" | "one_off";
4106
5514
  intervalCount: number;
4107
5515
  slot: "stripe_price_id" | "stripe_empty_price_id";
4108
5516
  tiers: {
@@ -4119,7 +5527,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4119
5527
  terms: {
4120
5528
  id: string;
4121
5529
  name: string;
4122
- duration: "forever" | "once" | "repeating";
5530
+ duration: "once" | "forever" | "repeating";
4123
5531
  percent_off?: number | undefined;
4124
5532
  amount_off?: number | undefined;
4125
5533
  currency?: string | undefined;
@@ -4136,66 +5544,497 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4136
5544
  append?: {
4137
5545
  subscriptionId: string;
4138
5546
  customerId: string;
4139
- sourceItems: {
4140
- id: string;
4141
- price_id: string;
5547
+ sourceItems: {
5548
+ id: string;
5549
+ price_id: string;
5550
+ quantity: number;
5551
+ discounts?: {
5552
+ id: string;
5553
+ coupon: string;
5554
+ start: number;
5555
+ end: number | null;
5556
+ }[] | undefined;
5557
+ }[];
5558
+ prorationDate: number;
5559
+ amountMinor: number;
5560
+ periodStartMs: number;
5561
+ periodEndMs: number;
5562
+ } | undefined;
5563
+ } | null;
5564
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
5565
+ catalogAmountMinor: number;
5566
+ taxMinor: number;
5567
+ totalMinor: number | null;
5568
+ quoteFinalized: boolean;
5569
+ nativePurchase: {
5570
+ type: "native_purchase";
5571
+ receiptId: string;
5572
+ orderId: string;
5573
+ productVersionId: string;
5574
+ provider: "apple" | "google";
5575
+ productId: string;
5576
+ productKind: "credit_pack" | "lifetime" | "membership";
5577
+ replacement: {
5578
+ sourceOrderId: string;
5579
+ sourceProductId: string;
5580
+ policy: "apple_store" | "google_full_price";
5581
+ sourceAccountTokens: string[];
5582
+ } | null;
5583
+ offerKind: "none" | "introductory" | "promotional";
5584
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
5585
+ catalogAmountMinor: number;
5586
+ discountMinor: number;
5587
+ trialDays: number | null;
5588
+ seatBundle: {
5589
+ key: string;
5590
+ quantity: number;
5591
+ }[];
5592
+ applePromotionalOffer: {
5593
+ offerId: string;
5594
+ keyId: string;
5595
+ nonce: string;
5596
+ signature: string;
5597
+ timestamp: number;
5598
+ } | null;
5599
+ appAccountToken?: string | undefined;
5600
+ obfuscatedAccountId?: string | undefined;
5601
+ obfuscatedProfileId?: string | undefined;
5602
+ basePlanId?: string | undefined;
5603
+ offerId?: string | undefined;
5604
+ } | null;
5605
+ append?: boolean | undefined;
5606
+ invoiceMode?: boolean | undefined;
5607
+ confirmedAt?: string | null | undefined;
5608
+ quote?: {
5609
+ operationId: string;
5610
+ entityId: string | null;
5611
+ billingSubscriptionId: string | null;
5612
+ discount: {
5613
+ offerId: string;
5614
+ couponId: string;
5615
+ discount: {
5616
+ type: "percent";
5617
+ percentOff: number;
5618
+ } | {
5619
+ type: "amount";
5620
+ amountOffCents: number;
5621
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
5622
+ };
5623
+ duration: {
5624
+ type: "once";
5625
+ } | {
5626
+ type: "repeating";
5627
+ months: number;
5628
+ } | {
5629
+ type: "forever";
5630
+ };
5631
+ amountMinor: number;
5632
+ allocations: {
5633
+ productVersionId: string;
5634
+ amountMinor: number;
5635
+ }[];
5636
+ expiresAt: string;
5637
+ } | null;
5638
+ charge: {
5639
+ effectiveAt: string;
5640
+ periodEndsAt: string;
5641
+ debitMinor: number;
5642
+ discountMinor: number;
5643
+ taxMinor: number;
5644
+ totalMinor: number;
5645
+ } | null;
5646
+ expiresAt: string;
5647
+ provider: "merchant" | "stripe" | "apple" | "google";
5648
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
5649
+ lines: {
5650
+ lineId: string;
5651
+ productVersionId: string;
5652
+ productName: string;
5653
+ interval: "week" | "month" | "year" | "one_time" | "free";
5654
+ baseAmountMinor: number;
5655
+ seats: {
5656
+ key: string;
5657
+ quantity: number;
5658
+ includedQuantity: number;
5659
+ maximumQuantity: number;
5660
+ unitAmountMinor: number;
5661
+ }[];
5662
+ catalogAmountMinor: number;
5663
+ trial: {
5664
+ days: number;
5665
+ cardRequired: boolean;
5666
+ } | null;
5667
+ intervalCount?: number | undefined;
5668
+ prepaid?: {
5669
+ itemKey: string;
5670
+ internal_feature_id: string;
5671
+ includedAmount: string;
5672
+ quantity: number;
5673
+ terms: {
5674
+ units: string;
5675
+ prices: {
5676
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
5677
+ amountMinor: number;
5678
+ pricing?: {
5679
+ kind: "graduated" | "volume";
5680
+ tiers: {
5681
+ upTo: number | null;
5682
+ unitAmountMinor: number;
5683
+ flatAmountMinor?: number | undefined;
5684
+ }[];
5685
+ } | undefined;
5686
+ }[];
5687
+ minimumQuantity: number;
5688
+ maximumQuantity: number;
5689
+ };
5690
+ unitAmountMinor: number;
5691
+ productId: string | null;
5692
+ priceId: string | null;
5693
+ pricing?: {
5694
+ kind: "graduated" | "volume";
5695
+ tiers: {
5696
+ upTo: number | null;
5697
+ unitAmountMinor: number;
5698
+ flatAmountMinor?: number | undefined;
5699
+ }[];
5700
+ } | undefined;
5701
+ }[] | undefined;
5702
+ }[];
5703
+ catalogAmountMinor: number;
5704
+ automaticTax: boolean;
5705
+ execution: {
5706
+ type: "purchase";
5707
+ mode: "payment" | "subscription";
5708
+ lineItems: {
5709
+ priceId: string;
5710
+ productVersionId: string;
5711
+ productId: string;
5712
+ quantity: number;
5713
+ unitAmountMinor: number;
5714
+ totalMinor: number;
5715
+ interval: "week" | "month" | "year" | "one_off";
5716
+ intervalCount: number;
5717
+ kind: "fixed" | "prepaid" | "seat";
5718
+ tiers: {
5719
+ mode: "graduated" | "volume";
5720
+ tiers: {
5721
+ upTo: number | null;
5722
+ unitAmountMinor: number;
5723
+ flatAmountMinor?: number | undefined;
5724
+ }[];
5725
+ } | null;
5726
+ }[];
5727
+ catalogAmountMinor: number;
5728
+ discount: {
5729
+ grantId: string;
5730
+ couponId: string;
5731
+ amountMinor: number;
5732
+ terms: {
5733
+ type: "percent";
5734
+ percentOff: number;
5735
+ } | {
5736
+ type: "amount";
5737
+ amountOffMinor: number;
5738
+ currency: string;
5739
+ };
5740
+ duration: {
5741
+ type: "once";
5742
+ } | {
5743
+ type: "forever";
5744
+ } | {
5745
+ type: "repeating";
5746
+ months: number;
5747
+ };
5748
+ } | null;
5749
+ trialPeriodDays: number | null;
5750
+ automaticTax: boolean;
5751
+ provider: "merchant";
5752
+ executor: "merchant";
5753
+ operationId: string;
5754
+ customerId: string;
5755
+ configurationRevision: number;
5756
+ connectionRevision: number;
5757
+ currency: string;
5758
+ expiresAt: string;
5759
+ } | {
5760
+ provider: "stripe";
5761
+ executor: "merchant" | "indiana";
5762
+ accountId: string;
5763
+ mode: "payment" | "subscription";
5764
+ lineItems: {
5765
+ price: string | null;
5766
+ quantity: number;
5767
+ priceId: string;
5768
+ productName: string;
5769
+ amountMinor: number;
5770
+ currency: string;
5771
+ interval: "week" | "month" | "year" | "one_off";
5772
+ intervalCount: number;
5773
+ slot: "stripe_price_id" | "stripe_empty_price_id";
5774
+ tiers: {
5775
+ mode: "graduated" | "volume";
5776
+ tiers: {
5777
+ upTo: number | null;
5778
+ unitAmountMinor: number;
5779
+ flatAmountMinor?: number | undefined;
5780
+ }[];
5781
+ } | null;
5782
+ }[];
5783
+ discounts: {
5784
+ coupon: string;
5785
+ terms: {
5786
+ id: string;
5787
+ name: string;
5788
+ duration: "once" | "forever" | "repeating";
5789
+ percent_off?: number | undefined;
5790
+ amount_off?: number | undefined;
5791
+ currency?: string | undefined;
5792
+ duration_in_months?: number | undefined;
5793
+ };
5794
+ }[];
5795
+ trialPeriodDays: number | null;
5796
+ metadata: {
5797
+ grooveCheckoutId: string;
5798
+ grooveCustomerId: string;
5799
+ };
5800
+ expiresAt: string;
5801
+ invoiceMode?: InvoiceModeParams | undefined;
5802
+ append?: {
5803
+ subscriptionId: string;
5804
+ customerId: string;
5805
+ sourceItems: {
5806
+ id: string;
5807
+ price_id: string;
5808
+ quantity: number;
5809
+ discounts?: {
5810
+ id: string;
5811
+ coupon: string;
5812
+ start: number;
5813
+ end: number | null;
5814
+ }[] | undefined;
5815
+ }[];
5816
+ prorationDate: number;
5817
+ amountMinor: number;
5818
+ periodStartMs: number;
5819
+ periodEndMs: number;
5820
+ } | undefined;
5821
+ } | null;
5822
+ nativeOffer?: {
5823
+ offerKind: "none" | "introductory" | "promotional";
5824
+ offerId: string | null;
5825
+ discountMinor: number;
5826
+ trialDays: number | null;
5827
+ } | undefined;
5828
+ } | undefined;
5829
+ merchantExecution?: {
5830
+ type: "purchase";
5831
+ merchantOrderId: string | null;
5832
+ paymentStatus: "unknown" | "not_started" | "pending" | "failed" | "succeeded" | "not_required" | "expired";
5833
+ checkoutUrl: string | null;
5834
+ checkoutExpiresAt: string | null;
5835
+ operationId: string;
5836
+ customerId: string;
5837
+ merchantExecutionId: string;
5838
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
5839
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
5840
+ updatedAt: string;
5841
+ problem: {
5842
+ phase: "payment" | "execution" | "fulfillment" | "recording";
5843
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
5844
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
5845
+ retryable: boolean;
5846
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
5847
+ } | null;
5848
+ pollAfterMs: number | null;
5849
+ } | {
5850
+ type: "subscription_change";
5851
+ status: "unknown" | "pending" | "applied" | "failed" | "scheduled";
5852
+ merchantSubscriptionId: string;
5853
+ scheduledFor: string | null;
5854
+ operationId: string;
5855
+ customerId: string;
5856
+ merchantExecutionId: string;
5857
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
5858
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
5859
+ updatedAt: string;
5860
+ problem: {
5861
+ phase: "payment" | "execution" | "fulfillment" | "recording";
5862
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
5863
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
5864
+ retryable: boolean;
5865
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
5866
+ } | null;
5867
+ pollAfterMs: number | null;
5868
+ } | {
5869
+ type: "refund";
5870
+ status: "unknown" | "pending" | "failed" | "succeeded";
5871
+ merchantRefundId: string | null;
5872
+ operationId: string;
5873
+ customerId: string;
5874
+ merchantExecutionId: string;
5875
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
5876
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
5877
+ updatedAt: string;
5878
+ problem: {
5879
+ phase: "payment" | "execution" | "fulfillment" | "recording";
5880
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
5881
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
5882
+ retryable: boolean;
5883
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
5884
+ } | null;
5885
+ pollAfterMs: number | null;
5886
+ } | null | undefined;
5887
+ problem?: {
5888
+ phase: "payment" | "execution" | "fulfillment" | "recording";
5889
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
5890
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
5891
+ retryable: boolean;
5892
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
5893
+ } | null | undefined;
5894
+ authority?: {
5895
+ scope: {
5896
+ projectId: string;
5897
+ environmentId: string;
5898
+ environment: "sandbox" | "live";
5899
+ };
5900
+ operationId: string;
5901
+ customerId: string;
5902
+ confirmedAt: string | null;
5903
+ initialExecutionAllowed: boolean;
5904
+ instruction: {
5905
+ type: "purchase";
5906
+ mode: "payment" | "subscription";
5907
+ lineItems: {
5908
+ priceId: string;
5909
+ productVersionId: string;
5910
+ productId: string;
5911
+ quantity: number;
5912
+ unitAmountMinor: number;
5913
+ totalMinor: number;
5914
+ interval: "week" | "month" | "year" | "one_off";
5915
+ intervalCount: number;
5916
+ kind: "fixed" | "prepaid" | "seat";
5917
+ tiers: {
5918
+ mode: "graduated" | "volume";
5919
+ tiers: {
5920
+ upTo: number | null;
5921
+ unitAmountMinor: number;
5922
+ flatAmountMinor?: number | undefined;
5923
+ }[];
5924
+ } | null;
5925
+ }[];
5926
+ catalogAmountMinor: number;
5927
+ discount: {
5928
+ grantId: string;
5929
+ couponId: string;
5930
+ amountMinor: number;
5931
+ terms: {
5932
+ type: "percent";
5933
+ percentOff: number;
5934
+ } | {
5935
+ type: "amount";
5936
+ amountOffMinor: number;
5937
+ currency: string;
5938
+ };
5939
+ duration: {
5940
+ type: "once";
5941
+ } | {
5942
+ type: "forever";
5943
+ } | {
5944
+ type: "repeating";
5945
+ months: number;
5946
+ };
5947
+ } | null;
5948
+ trialPeriodDays: number | null;
5949
+ automaticTax: boolean;
5950
+ provider: "merchant";
5951
+ executor: "merchant";
5952
+ operationId: string;
5953
+ customerId: string;
5954
+ configurationRevision: number;
5955
+ connectionRevision: number;
5956
+ currency: string;
5957
+ expiresAt: string;
5958
+ } | {
5959
+ type: "subscription_change";
5960
+ subscriptionId: string;
5961
+ merchantSubscriptionId: string;
5962
+ membershipId: string;
5963
+ subscriptionAction: "update" | "cancel" | "schedule" | "release";
5964
+ supersedesOperationId: string | null;
5965
+ change: {
5966
+ type: "cancel";
5967
+ } | {
5968
+ type: "uncancel";
5969
+ } | {
5970
+ type: "plan";
5971
+ productVersionId: string;
5972
+ } | {
5973
+ type: "seats";
5974
+ licenseKey: string;
5975
+ quantity: number;
5976
+ } | {
5977
+ type: "quantity";
5978
+ internal_feature_id: string;
5979
+ quantity: number;
5980
+ } | {
5981
+ type: "billing_cycle";
5982
+ billingCycleAnchor: number | "now";
5983
+ };
5984
+ timing: "immediate" | "renewal";
5985
+ effectiveAt: string;
5986
+ creditMinor: number;
5987
+ debitMinor: number;
5988
+ totalMinor: number;
5989
+ discountMinor: number;
5990
+ taxMinor: number;
5991
+ proration: "none" | "create_prorations" | "always_invoice";
5992
+ lineItems: {
5993
+ priceId: string;
5994
+ productVersionId: string;
5995
+ productId: string;
5996
+ unitAmountMinor: number;
5997
+ totalMinor: number;
5998
+ interval: "week" | "month" | "year" | "one_off";
5999
+ intervalCount: number;
6000
+ kind: "fixed" | "prepaid" | "seat";
6001
+ tiers: {
6002
+ mode: "graduated" | "volume";
6003
+ tiers: {
6004
+ upTo: number | null;
6005
+ unitAmountMinor: number;
6006
+ flatAmountMinor?: number | undefined;
6007
+ }[];
6008
+ } | null;
4142
6009
  quantity: number;
4143
- discounts?: {
4144
- id: string;
4145
- coupon: string;
4146
- start: number;
4147
- end: number | null;
4148
- }[] | undefined;
4149
6010
  }[];
4150
- prorationDate: number;
6011
+ removePriceIds: string[];
6012
+ provider: "merchant";
6013
+ executor: "merchant";
6014
+ operationId: string;
6015
+ customerId: string;
6016
+ configurationRevision: number;
6017
+ connectionRevision: number;
6018
+ currency: string;
6019
+ expiresAt: string;
6020
+ } | {
6021
+ type: "refund";
6022
+ invoiceId: string;
6023
+ merchantInvoiceId: string;
4151
6024
  amountMinor: number;
4152
- periodStartMs: number;
4153
- periodEndMs: number;
4154
- } | undefined;
4155
- } | null;
4156
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4157
- catalogAmountMinor: number;
4158
- taxMinor: number;
4159
- totalMinor: number | null;
4160
- quoteFinalized: boolean;
4161
- nativePurchase: {
4162
- type: "native_purchase";
4163
- receiptId: string;
4164
- orderId: string;
4165
- productVersionId: string;
4166
- provider: "apple" | "google";
4167
- productId: string;
4168
- productKind: "lifetime" | "membership" | "credit_pack";
4169
- replacement: {
4170
- sourceOrderId: string;
4171
- sourceProductId: string;
4172
- policy: "apple_store" | "google_full_price";
4173
- sourceAccountTokens: string[];
4174
- } | null;
4175
- offerKind: "none" | "introductory" | "promotional";
4176
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4177
- catalogAmountMinor: number;
4178
- discountMinor: number;
4179
- trialDays: number | null;
4180
- seatBundle: {
4181
- key: string;
4182
- quantity: number;
4183
- }[];
4184
- applePromotionalOffer: {
4185
- offerId: string;
4186
- keyId: string;
4187
- nonce: string;
4188
- signature: string;
4189
- timestamp: number;
4190
- } | null;
4191
- appAccountToken?: string | undefined;
4192
- obfuscatedAccountId?: string | undefined;
4193
- obfuscatedProfileId?: string | undefined;
4194
- basePlanId?: string | undefined;
4195
- offerId?: string | undefined;
4196
- } | null;
4197
- append?: boolean | undefined;
4198
- invoiceMode?: boolean | undefined;
6025
+ mode: "full" | "partial";
6026
+ entitlementAction: "retain" | "revoke";
6027
+ cancelSubscriptions: string[];
6028
+ provider: "merchant";
6029
+ executor: "merchant";
6030
+ operationId: string;
6031
+ customerId: string;
6032
+ configurationRevision: number;
6033
+ connectionRevision: number;
6034
+ currency: string;
6035
+ expiresAt: string;
6036
+ };
6037
+ } | undefined;
4199
6038
  } | null;
4200
6039
  purchaseRequestId: string | null;
4201
6040
  selectionGeneration?: number | undefined;
@@ -4281,13 +6120,13 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4281
6120
  totalMinor: number;
4282
6121
  } | null;
4283
6122
  expiresAt: string;
4284
- provider: "stripe" | "apple" | "google";
6123
+ provider: "merchant" | "stripe" | "apple" | "google";
4285
6124
  currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4286
6125
  lines: {
4287
6126
  lineId: string;
4288
6127
  productVersionId: string;
4289
6128
  productName: string;
4290
- interval: "free" | "month" | "year" | "week" | "one_time";
6129
+ interval: "week" | "month" | "year" | "one_time" | "free";
4291
6130
  baseAmountMinor: number;
4292
6131
  seats: {
4293
6132
  key: string;
@@ -4307,41 +6146,225 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4307
6146
  internal_feature_id: string;
4308
6147
  includedAmount: string;
4309
6148
  quantity: number;
4310
- terms: {
4311
- units: string;
4312
- prices: {
4313
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4314
- amountMinor: number;
4315
- pricing?: {
4316
- kind: "graduated" | "volume";
4317
- tiers: {
4318
- upTo: number | null;
4319
- unitAmountMinor: number;
4320
- flatAmountMinor?: number | undefined;
4321
- }[];
4322
- } | undefined;
4323
- }[];
4324
- minimumQuantity: number;
4325
- maximumQuantity: number;
4326
- };
6149
+ terms: {
6150
+ units: string;
6151
+ prices: {
6152
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
6153
+ amountMinor: number;
6154
+ pricing?: {
6155
+ kind: "graduated" | "volume";
6156
+ tiers: {
6157
+ upTo: number | null;
6158
+ unitAmountMinor: number;
6159
+ flatAmountMinor?: number | undefined;
6160
+ }[];
6161
+ } | undefined;
6162
+ }[];
6163
+ minimumQuantity: number;
6164
+ maximumQuantity: number;
6165
+ };
6166
+ unitAmountMinor: number;
6167
+ productId: string | null;
6168
+ priceId: string | null;
6169
+ pricing?: {
6170
+ kind: "graduated" | "volume";
6171
+ tiers: {
6172
+ upTo: number | null;
6173
+ unitAmountMinor: number;
6174
+ flatAmountMinor?: number | undefined;
6175
+ }[];
6176
+ } | undefined;
6177
+ }[] | undefined;
6178
+ }[];
6179
+ catalogAmountMinor: number;
6180
+ automaticTax: boolean;
6181
+ execution: {
6182
+ type: "purchase";
6183
+ mode: "payment" | "subscription";
6184
+ lineItems: {
6185
+ priceId: string;
6186
+ productVersionId: string;
6187
+ productId: string;
6188
+ quantity: number;
6189
+ unitAmountMinor: number;
6190
+ totalMinor: number;
6191
+ interval: "week" | "month" | "year" | "one_off";
6192
+ intervalCount: number;
6193
+ kind: "fixed" | "prepaid" | "seat";
6194
+ tiers: {
6195
+ mode: "graduated" | "volume";
6196
+ tiers: {
6197
+ upTo: number | null;
6198
+ unitAmountMinor: number;
6199
+ flatAmountMinor?: number | undefined;
6200
+ }[];
6201
+ } | null;
6202
+ }[];
6203
+ catalogAmountMinor: number;
6204
+ discount: {
6205
+ grantId: string;
6206
+ couponId: string;
6207
+ amountMinor: number;
6208
+ terms: {
6209
+ type: "percent";
6210
+ percentOff: number;
6211
+ } | {
6212
+ type: "amount";
6213
+ amountOffMinor: number;
6214
+ currency: string;
6215
+ };
6216
+ duration: {
6217
+ type: "once";
6218
+ } | {
6219
+ type: "forever";
6220
+ } | {
6221
+ type: "repeating";
6222
+ months: number;
6223
+ };
6224
+ } | null;
6225
+ trialPeriodDays: number | null;
6226
+ automaticTax: boolean;
6227
+ provider: "merchant";
6228
+ executor: "merchant";
6229
+ operationId: string;
6230
+ customerId: string;
6231
+ configurationRevision: number;
6232
+ connectionRevision: number;
6233
+ currency: string;
6234
+ expiresAt: string;
6235
+ } | {
6236
+ provider: "stripe";
6237
+ executor: "merchant" | "indiana";
6238
+ accountId: string;
6239
+ mode: "payment" | "subscription";
6240
+ lineItems: {
6241
+ price: string | null;
6242
+ quantity: number;
6243
+ priceId: string;
6244
+ productName: string;
6245
+ amountMinor: number;
6246
+ currency: string;
6247
+ interval: "week" | "month" | "year" | "one_off";
6248
+ intervalCount: number;
6249
+ slot: "stripe_price_id" | "stripe_empty_price_id";
6250
+ tiers: {
6251
+ mode: "graduated" | "volume";
6252
+ tiers: {
6253
+ upTo: number | null;
6254
+ unitAmountMinor: number;
6255
+ flatAmountMinor?: number | undefined;
6256
+ }[];
6257
+ } | null;
6258
+ }[];
6259
+ discounts: {
6260
+ coupon: string;
6261
+ terms: {
6262
+ id: string;
6263
+ name: string;
6264
+ duration: "once" | "forever" | "repeating";
6265
+ percent_off?: number | undefined;
6266
+ amount_off?: number | undefined;
6267
+ currency?: string | undefined;
6268
+ duration_in_months?: number | undefined;
6269
+ };
6270
+ }[];
6271
+ trialPeriodDays: number | null;
6272
+ metadata: {
6273
+ grooveCheckoutId: string;
6274
+ grooveCustomerId: string;
6275
+ };
6276
+ expiresAt: string;
6277
+ invoiceMode?: InvoiceModeParams | undefined;
6278
+ append?: {
6279
+ subscriptionId: string;
6280
+ customerId: string;
6281
+ sourceItems: {
6282
+ id: string;
6283
+ price_id: string;
6284
+ quantity: number;
6285
+ discounts?: {
6286
+ id: string;
6287
+ coupon: string;
6288
+ start: number;
6289
+ end: number | null;
6290
+ }[] | undefined;
6291
+ }[];
6292
+ prorationDate: number;
6293
+ amountMinor: number;
6294
+ periodStartMs: number;
6295
+ periodEndMs: number;
6296
+ } | undefined;
6297
+ } | null;
6298
+ nativeOffer?: {
6299
+ offerKind: "none" | "introductory" | "promotional";
6300
+ offerId: string | null;
6301
+ discountMinor: number;
6302
+ trialDays: number | null;
6303
+ } | undefined;
6304
+ } | null;
6305
+ operation: {
6306
+ operationId: string;
6307
+ orderId: string;
6308
+ status: "pending" | "failed" | "cancelled" | "complete";
6309
+ executor: "merchant" | "indiana";
6310
+ checkoutUrl: string | null;
6311
+ execution: {
6312
+ type: "purchase";
6313
+ mode: "payment" | "subscription";
6314
+ lineItems: {
6315
+ priceId: string;
6316
+ productVersionId: string;
6317
+ productId: string;
6318
+ quantity: number;
4327
6319
  unitAmountMinor: number;
4328
- productId: string | null;
4329
- priceId: string | null;
4330
- pricing?: {
4331
- kind: "graduated" | "volume";
6320
+ totalMinor: number;
6321
+ interval: "week" | "month" | "year" | "one_off";
6322
+ intervalCount: number;
6323
+ kind: "fixed" | "prepaid" | "seat";
6324
+ tiers: {
6325
+ mode: "graduated" | "volume";
4332
6326
  tiers: {
4333
6327
  upTo: number | null;
4334
6328
  unitAmountMinor: number;
4335
6329
  flatAmountMinor?: number | undefined;
4336
6330
  }[];
4337
- } | undefined;
4338
- }[] | undefined;
4339
- }[];
4340
- catalogAmountMinor: number;
4341
- automaticTax: boolean;
4342
- execution: {
6331
+ } | null;
6332
+ }[];
6333
+ catalogAmountMinor: number;
6334
+ discount: {
6335
+ grantId: string;
6336
+ couponId: string;
6337
+ amountMinor: number;
6338
+ terms: {
6339
+ type: "percent";
6340
+ percentOff: number;
6341
+ } | {
6342
+ type: "amount";
6343
+ amountOffMinor: number;
6344
+ currency: string;
6345
+ };
6346
+ duration: {
6347
+ type: "once";
6348
+ } | {
6349
+ type: "forever";
6350
+ } | {
6351
+ type: "repeating";
6352
+ months: number;
6353
+ };
6354
+ } | null;
6355
+ trialPeriodDays: number | null;
6356
+ automaticTax: boolean;
6357
+ provider: "merchant";
6358
+ executor: "merchant";
6359
+ operationId: string;
6360
+ customerId: string;
6361
+ configurationRevision: number;
6362
+ connectionRevision: number;
6363
+ currency: string;
6364
+ expiresAt: string;
6365
+ } | {
4343
6366
  provider: "stripe";
4344
- executor: "indiana" | "merchant";
6367
+ executor: "merchant" | "indiana";
4345
6368
  accountId: string;
4346
6369
  mode: "payment" | "subscription";
4347
6370
  lineItems: {
@@ -4351,7 +6374,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4351
6374
  productName: string;
4352
6375
  amountMinor: number;
4353
6376
  currency: string;
4354
- interval: "month" | "year" | "one_off" | "week";
6377
+ interval: "week" | "month" | "year" | "one_off";
4355
6378
  intervalCount: number;
4356
6379
  slot: "stripe_price_id" | "stripe_empty_price_id";
4357
6380
  tiers: {
@@ -4368,7 +6391,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4368
6391
  terms: {
4369
6392
  id: string;
4370
6393
  name: string;
4371
- duration: "forever" | "once" | "repeating";
6394
+ duration: "once" | "forever" | "repeating";
4372
6395
  percent_off?: number | undefined;
4373
6396
  amount_off?: number | undefined;
4374
6397
  currency?: string | undefined;
@@ -4391,136 +6414,491 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4391
6414
  quantity: number;
4392
6415
  discounts?: {
4393
6416
  id: string;
4394
- coupon: string;
4395
- start: number;
4396
- end: number | null;
4397
- }[] | undefined;
6417
+ coupon: string;
6418
+ start: number;
6419
+ end: number | null;
6420
+ }[] | undefined;
6421
+ }[];
6422
+ prorationDate: number;
6423
+ amountMinor: number;
6424
+ periodStartMs: number;
6425
+ periodEndMs: number;
6426
+ } | undefined;
6427
+ } | null;
6428
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
6429
+ catalogAmountMinor: number;
6430
+ taxMinor: number;
6431
+ totalMinor: number | null;
6432
+ quoteFinalized: boolean;
6433
+ nativePurchase: {
6434
+ type: "native_purchase";
6435
+ receiptId: string;
6436
+ orderId: string;
6437
+ productVersionId: string;
6438
+ provider: "apple" | "google";
6439
+ productId: string;
6440
+ productKind: "credit_pack" | "lifetime" | "membership";
6441
+ replacement: {
6442
+ sourceOrderId: string;
6443
+ sourceProductId: string;
6444
+ policy: "apple_store" | "google_full_price";
6445
+ sourceAccountTokens: string[];
6446
+ } | null;
6447
+ offerKind: "none" | "introductory" | "promotional";
6448
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
6449
+ catalogAmountMinor: number;
6450
+ discountMinor: number;
6451
+ trialDays: number | null;
6452
+ seatBundle: {
6453
+ key: string;
6454
+ quantity: number;
6455
+ }[];
6456
+ applePromotionalOffer: {
6457
+ offerId: string;
6458
+ keyId: string;
6459
+ nonce: string;
6460
+ signature: string;
6461
+ timestamp: number;
6462
+ } | null;
6463
+ appAccountToken?: string | undefined;
6464
+ obfuscatedAccountId?: string | undefined;
6465
+ obfuscatedProfileId?: string | undefined;
6466
+ basePlanId?: string | undefined;
6467
+ offerId?: string | undefined;
6468
+ } | null;
6469
+ append?: boolean | undefined;
6470
+ invoiceMode?: boolean | undefined;
6471
+ confirmedAt?: string | null | undefined;
6472
+ quote?: {
6473
+ operationId: string;
6474
+ entityId: string | null;
6475
+ billingSubscriptionId: string | null;
6476
+ discount: {
6477
+ offerId: string;
6478
+ couponId: string;
6479
+ discount: {
6480
+ type: "percent";
6481
+ percentOff: number;
6482
+ } | {
6483
+ type: "amount";
6484
+ amountOffCents: number;
6485
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
6486
+ };
6487
+ duration: {
6488
+ type: "once";
6489
+ } | {
6490
+ type: "repeating";
6491
+ months: number;
6492
+ } | {
6493
+ type: "forever";
6494
+ };
6495
+ amountMinor: number;
6496
+ allocations: {
6497
+ productVersionId: string;
6498
+ amountMinor: number;
6499
+ }[];
6500
+ expiresAt: string;
6501
+ } | null;
6502
+ charge: {
6503
+ effectiveAt: string;
6504
+ periodEndsAt: string;
6505
+ debitMinor: number;
6506
+ discountMinor: number;
6507
+ taxMinor: number;
6508
+ totalMinor: number;
6509
+ } | null;
6510
+ expiresAt: string;
6511
+ provider: "merchant" | "stripe" | "apple" | "google";
6512
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
6513
+ lines: {
6514
+ lineId: string;
6515
+ productVersionId: string;
6516
+ productName: string;
6517
+ interval: "week" | "month" | "year" | "one_time" | "free";
6518
+ baseAmountMinor: number;
6519
+ seats: {
6520
+ key: string;
6521
+ quantity: number;
6522
+ includedQuantity: number;
6523
+ maximumQuantity: number;
6524
+ unitAmountMinor: number;
6525
+ }[];
6526
+ catalogAmountMinor: number;
6527
+ trial: {
6528
+ days: number;
6529
+ cardRequired: boolean;
6530
+ } | null;
6531
+ intervalCount?: number | undefined;
6532
+ prepaid?: {
6533
+ itemKey: string;
6534
+ internal_feature_id: string;
6535
+ includedAmount: string;
6536
+ quantity: number;
6537
+ terms: {
6538
+ units: string;
6539
+ prices: {
6540
+ currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
6541
+ amountMinor: number;
6542
+ pricing?: {
6543
+ kind: "graduated" | "volume";
6544
+ tiers: {
6545
+ upTo: number | null;
6546
+ unitAmountMinor: number;
6547
+ flatAmountMinor?: number | undefined;
6548
+ }[];
6549
+ } | undefined;
6550
+ }[];
6551
+ minimumQuantity: number;
6552
+ maximumQuantity: number;
6553
+ };
6554
+ unitAmountMinor: number;
6555
+ productId: string | null;
6556
+ priceId: string | null;
6557
+ pricing?: {
6558
+ kind: "graduated" | "volume";
6559
+ tiers: {
6560
+ upTo: number | null;
6561
+ unitAmountMinor: number;
6562
+ flatAmountMinor?: number | undefined;
6563
+ }[];
6564
+ } | undefined;
6565
+ }[] | undefined;
6566
+ }[];
6567
+ catalogAmountMinor: number;
6568
+ automaticTax: boolean;
6569
+ execution: {
6570
+ type: "purchase";
6571
+ mode: "payment" | "subscription";
6572
+ lineItems: {
6573
+ priceId: string;
6574
+ productVersionId: string;
6575
+ productId: string;
6576
+ quantity: number;
6577
+ unitAmountMinor: number;
6578
+ totalMinor: number;
6579
+ interval: "week" | "month" | "year" | "one_off";
6580
+ intervalCount: number;
6581
+ kind: "fixed" | "prepaid" | "seat";
6582
+ tiers: {
6583
+ mode: "graduated" | "volume";
6584
+ tiers: {
6585
+ upTo: number | null;
6586
+ unitAmountMinor: number;
6587
+ flatAmountMinor?: number | undefined;
6588
+ }[];
6589
+ } | null;
6590
+ }[];
6591
+ catalogAmountMinor: number;
6592
+ discount: {
6593
+ grantId: string;
6594
+ couponId: string;
6595
+ amountMinor: number;
6596
+ terms: {
6597
+ type: "percent";
6598
+ percentOff: number;
6599
+ } | {
6600
+ type: "amount";
6601
+ amountOffMinor: number;
6602
+ currency: string;
6603
+ };
6604
+ duration: {
6605
+ type: "once";
6606
+ } | {
6607
+ type: "forever";
6608
+ } | {
6609
+ type: "repeating";
6610
+ months: number;
6611
+ };
6612
+ } | null;
6613
+ trialPeriodDays: number | null;
6614
+ automaticTax: boolean;
6615
+ provider: "merchant";
6616
+ executor: "merchant";
6617
+ operationId: string;
6618
+ customerId: string;
6619
+ configurationRevision: number;
6620
+ connectionRevision: number;
6621
+ currency: string;
6622
+ expiresAt: string;
6623
+ } | {
6624
+ provider: "stripe";
6625
+ executor: "merchant" | "indiana";
6626
+ accountId: string;
6627
+ mode: "payment" | "subscription";
6628
+ lineItems: {
6629
+ price: string | null;
6630
+ quantity: number;
6631
+ priceId: string;
6632
+ productName: string;
6633
+ amountMinor: number;
6634
+ currency: string;
6635
+ interval: "week" | "month" | "year" | "one_off";
6636
+ intervalCount: number;
6637
+ slot: "stripe_price_id" | "stripe_empty_price_id";
6638
+ tiers: {
6639
+ mode: "graduated" | "volume";
6640
+ tiers: {
6641
+ upTo: number | null;
6642
+ unitAmountMinor: number;
6643
+ flatAmountMinor?: number | undefined;
6644
+ }[];
6645
+ } | null;
6646
+ }[];
6647
+ discounts: {
6648
+ coupon: string;
6649
+ terms: {
6650
+ id: string;
6651
+ name: string;
6652
+ duration: "once" | "forever" | "repeating";
6653
+ percent_off?: number | undefined;
6654
+ amount_off?: number | undefined;
6655
+ currency?: string | undefined;
6656
+ duration_in_months?: number | undefined;
6657
+ };
4398
6658
  }[];
4399
- prorationDate: number;
4400
- amountMinor: number;
4401
- periodStartMs: number;
4402
- periodEndMs: number;
6659
+ trialPeriodDays: number | null;
6660
+ metadata: {
6661
+ grooveCheckoutId: string;
6662
+ grooveCustomerId: string;
6663
+ };
6664
+ expiresAt: string;
6665
+ invoiceMode?: InvoiceModeParams | undefined;
6666
+ append?: {
6667
+ subscriptionId: string;
6668
+ customerId: string;
6669
+ sourceItems: {
6670
+ id: string;
6671
+ price_id: string;
6672
+ quantity: number;
6673
+ discounts?: {
6674
+ id: string;
6675
+ coupon: string;
6676
+ start: number;
6677
+ end: number | null;
6678
+ }[] | undefined;
6679
+ }[];
6680
+ prorationDate: number;
6681
+ amountMinor: number;
6682
+ periodStartMs: number;
6683
+ periodEndMs: number;
6684
+ } | undefined;
6685
+ } | null;
6686
+ nativeOffer?: {
6687
+ offerKind: "none" | "introductory" | "promotional";
6688
+ offerId: string | null;
6689
+ discountMinor: number;
6690
+ trialDays: number | null;
4403
6691
  } | undefined;
4404
- } | null;
4405
- nativeOffer?: {
4406
- offerKind: "none" | "introductory" | "promotional";
4407
- offerId: string | null;
4408
- discountMinor: number;
4409
- trialDays: number | null;
4410
6692
  } | undefined;
4411
- } | null;
4412
- operation: {
4413
- operationId: string;
4414
- orderId: string;
4415
- status: "pending" | "failed" | "complete" | "cancelled";
4416
- executor: "indiana" | "merchant";
4417
- checkoutUrl: string | null;
4418
- execution: {
4419
- provider: "stripe";
4420
- executor: "indiana" | "merchant";
4421
- accountId: string;
4422
- mode: "payment" | "subscription";
4423
- lineItems: {
4424
- price: string | null;
4425
- quantity: number;
4426
- priceId: string;
4427
- productName: string;
4428
- amountMinor: number;
4429
- currency: string;
4430
- interval: "month" | "year" | "one_off" | "week";
4431
- intervalCount: number;
4432
- slot: "stripe_price_id" | "stripe_empty_price_id";
4433
- tiers: {
4434
- mode: "graduated" | "volume";
6693
+ merchantExecution?: {
6694
+ type: "purchase";
6695
+ merchantOrderId: string | null;
6696
+ paymentStatus: "unknown" | "not_started" | "pending" | "failed" | "succeeded" | "not_required" | "expired";
6697
+ checkoutUrl: string | null;
6698
+ checkoutExpiresAt: string | null;
6699
+ operationId: string;
6700
+ customerId: string;
6701
+ merchantExecutionId: string;
6702
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
6703
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
6704
+ updatedAt: string;
6705
+ problem: {
6706
+ phase: "payment" | "execution" | "fulfillment" | "recording";
6707
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
6708
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
6709
+ retryable: boolean;
6710
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
6711
+ } | null;
6712
+ pollAfterMs: number | null;
6713
+ } | {
6714
+ type: "subscription_change";
6715
+ status: "unknown" | "pending" | "applied" | "failed" | "scheduled";
6716
+ merchantSubscriptionId: string;
6717
+ scheduledFor: string | null;
6718
+ operationId: string;
6719
+ customerId: string;
6720
+ merchantExecutionId: string;
6721
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
6722
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
6723
+ updatedAt: string;
6724
+ problem: {
6725
+ phase: "payment" | "execution" | "fulfillment" | "recording";
6726
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
6727
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
6728
+ retryable: boolean;
6729
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
6730
+ } | null;
6731
+ pollAfterMs: number | null;
6732
+ } | {
6733
+ type: "refund";
6734
+ status: "unknown" | "pending" | "failed" | "succeeded";
6735
+ merchantRefundId: string | null;
6736
+ operationId: string;
6737
+ customerId: string;
6738
+ merchantExecutionId: string;
6739
+ fulfillmentStatus: "not_started" | "pending" | "applied" | "failed" | "not_applicable";
6740
+ recordingStatus: "pending" | "failed" | "not_ready" | "accepted";
6741
+ updatedAt: string;
6742
+ problem: {
6743
+ phase: "payment" | "execution" | "fulfillment" | "recording";
6744
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
6745
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
6746
+ retryable: boolean;
6747
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
6748
+ } | null;
6749
+ pollAfterMs: number | null;
6750
+ } | null | undefined;
6751
+ problem?: {
6752
+ phase: "payment" | "execution" | "fulfillment" | "recording";
6753
+ code: "INVALID_PROTOCOL_VERSION" | "UNSUPPORTED_PROTOCOL_VERSION" | "PROTOCOL_RETIRED" | "UNAUTHENTICATED" | "FORBIDDEN" | "SCOPE_MISMATCH" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "NOT_CONFIGURED" | "CAPABILITY_UNAVAILABLE" | "INTERNAL_ERROR";
6754
+ recovery: "fix_request" | "authenticate" | "check_permissions" | "check_scope" | "resolve_conflict" | "reload_state" | "retry_same_request" | "configure_integration" | "check_availability" | "upgrade_sdk" | "recover_operation" | "contact_support";
6755
+ retryable: boolean;
6756
+ reason?: "CAPABILITY_NOT_ENABLED" | "INTEGRATION_MISSING" | "PROVIDER_CREDENTIAL_REJECTED" | "PRICE_BINDING_REQUIRED" | "IDEMPOTENCY_CONFLICT" | "RESULT_UNKNOWN" | "STATE_CHANGED" | "OPERATION_IN_PROGRESS" | "FUNNEL_VERSION_RETIRED" | undefined;
6757
+ } | null | undefined;
6758
+ authority?: {
6759
+ scope: {
6760
+ projectId: string;
6761
+ environmentId: string;
6762
+ environment: "sandbox" | "live";
6763
+ };
6764
+ operationId: string;
6765
+ customerId: string;
6766
+ confirmedAt: string | null;
6767
+ initialExecutionAllowed: boolean;
6768
+ instruction: {
6769
+ type: "purchase";
6770
+ mode: "payment" | "subscription";
6771
+ lineItems: {
6772
+ priceId: string;
6773
+ productVersionId: string;
6774
+ productId: string;
6775
+ quantity: number;
6776
+ unitAmountMinor: number;
6777
+ totalMinor: number;
6778
+ interval: "week" | "month" | "year" | "one_off";
6779
+ intervalCount: number;
6780
+ kind: "fixed" | "prepaid" | "seat";
4435
6781
  tiers: {
4436
- upTo: number | null;
4437
- unitAmountMinor: number;
4438
- flatAmountMinor?: number | undefined;
4439
- }[];
6782
+ mode: "graduated" | "volume";
6783
+ tiers: {
6784
+ upTo: number | null;
6785
+ unitAmountMinor: number;
6786
+ flatAmountMinor?: number | undefined;
6787
+ }[];
6788
+ } | null;
6789
+ }[];
6790
+ catalogAmountMinor: number;
6791
+ discount: {
6792
+ grantId: string;
6793
+ couponId: string;
6794
+ amountMinor: number;
6795
+ terms: {
6796
+ type: "percent";
6797
+ percentOff: number;
6798
+ } | {
6799
+ type: "amount";
6800
+ amountOffMinor: number;
6801
+ currency: string;
6802
+ };
6803
+ duration: {
6804
+ type: "once";
6805
+ } | {
6806
+ type: "forever";
6807
+ } | {
6808
+ type: "repeating";
6809
+ months: number;
6810
+ };
4440
6811
  } | null;
4441
- }[];
4442
- discounts: {
4443
- coupon: string;
4444
- terms: {
4445
- id: string;
4446
- name: string;
4447
- duration: "forever" | "once" | "repeating";
4448
- percent_off?: number | undefined;
4449
- amount_off?: number | undefined;
4450
- currency?: string | undefined;
4451
- duration_in_months?: number | undefined;
4452
- };
4453
- }[];
4454
- trialPeriodDays: number | null;
4455
- metadata: {
4456
- grooveCheckoutId: string;
4457
- grooveCustomerId: string;
4458
- };
4459
- expiresAt: string;
4460
- invoiceMode?: InvoiceModeParams | undefined;
4461
- append?: {
4462
- subscriptionId: string;
6812
+ trialPeriodDays: number | null;
6813
+ automaticTax: boolean;
6814
+ provider: "merchant";
6815
+ executor: "merchant";
6816
+ operationId: string;
4463
6817
  customerId: string;
4464
- sourceItems: {
4465
- id: string;
4466
- price_id: string;
6818
+ configurationRevision: number;
6819
+ connectionRevision: number;
6820
+ currency: string;
6821
+ expiresAt: string;
6822
+ } | {
6823
+ type: "subscription_change";
6824
+ subscriptionId: string;
6825
+ merchantSubscriptionId: string;
6826
+ membershipId: string;
6827
+ subscriptionAction: "update" | "cancel" | "schedule" | "release";
6828
+ supersedesOperationId: string | null;
6829
+ change: {
6830
+ type: "cancel";
6831
+ } | {
6832
+ type: "uncancel";
6833
+ } | {
6834
+ type: "plan";
6835
+ productVersionId: string;
6836
+ } | {
6837
+ type: "seats";
6838
+ licenseKey: string;
6839
+ quantity: number;
6840
+ } | {
6841
+ type: "quantity";
6842
+ internal_feature_id: string;
6843
+ quantity: number;
6844
+ } | {
6845
+ type: "billing_cycle";
6846
+ billingCycleAnchor: number | "now";
6847
+ };
6848
+ timing: "immediate" | "renewal";
6849
+ effectiveAt: string;
6850
+ creditMinor: number;
6851
+ debitMinor: number;
6852
+ totalMinor: number;
6853
+ discountMinor: number;
6854
+ taxMinor: number;
6855
+ proration: "none" | "create_prorations" | "always_invoice";
6856
+ lineItems: {
6857
+ priceId: string;
6858
+ productVersionId: string;
6859
+ productId: string;
6860
+ unitAmountMinor: number;
6861
+ totalMinor: number;
6862
+ interval: "week" | "month" | "year" | "one_off";
6863
+ intervalCount: number;
6864
+ kind: "fixed" | "prepaid" | "seat";
6865
+ tiers: {
6866
+ mode: "graduated" | "volume";
6867
+ tiers: {
6868
+ upTo: number | null;
6869
+ unitAmountMinor: number;
6870
+ flatAmountMinor?: number | undefined;
6871
+ }[];
6872
+ } | null;
4467
6873
  quantity: number;
4468
- discounts?: {
4469
- id: string;
4470
- coupon: string;
4471
- start: number;
4472
- end: number | null;
4473
- }[] | undefined;
4474
6874
  }[];
4475
- prorationDate: number;
6875
+ removePriceIds: string[];
6876
+ provider: "merchant";
6877
+ executor: "merchant";
6878
+ operationId: string;
6879
+ customerId: string;
6880
+ configurationRevision: number;
6881
+ connectionRevision: number;
6882
+ currency: string;
6883
+ expiresAt: string;
6884
+ } | {
6885
+ type: "refund";
6886
+ invoiceId: string;
6887
+ merchantInvoiceId: string;
4476
6888
  amountMinor: number;
4477
- periodStartMs: number;
4478
- periodEndMs: number;
4479
- } | undefined;
4480
- } | null;
4481
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4482
- catalogAmountMinor: number;
4483
- taxMinor: number;
4484
- totalMinor: number | null;
4485
- quoteFinalized: boolean;
4486
- nativePurchase: {
4487
- type: "native_purchase";
4488
- receiptId: string;
4489
- orderId: string;
4490
- productVersionId: string;
4491
- provider: "apple" | "google";
4492
- productId: string;
4493
- productKind: "lifetime" | "membership" | "credit_pack";
4494
- replacement: {
4495
- sourceOrderId: string;
4496
- sourceProductId: string;
4497
- policy: "apple_store" | "google_full_price";
4498
- sourceAccountTokens: string[];
4499
- } | null;
4500
- offerKind: "none" | "introductory" | "promotional";
4501
- currency: "USD" | "EUR" | "CNY" | "GBP" | "JPY" | "CAD" | "AUD" | "NZD" | "CHF" | "HKD" | "SGD" | "KRW" | "INR" | "BRL" | "MXN" | "TWD" | "THB" | "IDR" | "MYR" | "PHP" | "VND" | "ZAR" | "AED" | "SAR" | "SEK" | "NOK" | "DKK" | "PLN" | "CZK" | "HUF" | "ILS" | "TRY" | "RON";
4502
- catalogAmountMinor: number;
4503
- discountMinor: number;
4504
- trialDays: number | null;
4505
- seatBundle: {
4506
- key: string;
4507
- quantity: number;
4508
- }[];
4509
- applePromotionalOffer: {
4510
- offerId: string;
4511
- keyId: string;
4512
- nonce: string;
4513
- signature: string;
4514
- timestamp: number;
4515
- } | null;
4516
- appAccountToken?: string | undefined;
4517
- obfuscatedAccountId?: string | undefined;
4518
- obfuscatedProfileId?: string | undefined;
4519
- basePlanId?: string | undefined;
4520
- offerId?: string | undefined;
4521
- } | null;
4522
- append?: boolean | undefined;
4523
- invoiceMode?: boolean | undefined;
6889
+ mode: "full" | "partial";
6890
+ entitlementAction: "retain" | "revoke";
6891
+ cancelSubscriptions: string[];
6892
+ provider: "merchant";
6893
+ executor: "merchant";
6894
+ operationId: string;
6895
+ customerId: string;
6896
+ configurationRevision: number;
6897
+ connectionRevision: number;
6898
+ currency: string;
6899
+ expiresAt: string;
6900
+ };
6901
+ } | undefined;
4524
6902
  } | null;
4525
6903
  canReselect?: boolean | undefined;
4526
6904
  } | undefined;
@@ -4555,7 +6933,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4555
6933
  primary: string;
4556
6934
  background: string;
4557
6935
  text: string;
4558
- radius: "none" | "sm" | "md" | "lg" | "full";
6936
+ radius: "none" | "full" | "sm" | "md" | "lg";
4559
6937
  font: "system" | "serif" | "rounded" | "mono";
4560
6938
  };
4561
6939
  pages: {
@@ -4566,7 +6944,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4566
6944
  primary: string;
4567
6945
  background: string;
4568
6946
  text: string;
4569
- radius: "none" | "sm" | "md" | "lg" | "full";
6947
+ radius: "none" | "full" | "sm" | "md" | "lg";
4570
6948
  font: "system" | "serif" | "rounded" | "mono";
4571
6949
  } | undefined;
4572
6950
  editorPosition?: {
@@ -4630,7 +7008,7 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4630
7008
  purchases: {
4631
7009
  receiptId: string;
4632
7010
  operationId: string;
4633
- status: "unknown" | "pending" | "failed" | "complete" | "cancelled";
7011
+ status: "unknown" | "pending" | "failed" | "cancelled" | "complete";
4634
7012
  }[];
4635
7013
  } | undefined;
4636
7014
  runToken?: string | undefined;
@@ -4646,4 +7024,50 @@ declare function createFunnelCampaignClient(options: IndianaServerOptions & {
4646
7024
  }>;
4647
7025
  };
4648
7026
 
4649
- export { ConfigurationSync, FeatureClientOptions, type FunnelDecisionInput, FunnelDecisionTimeoutError, type FunnelDecisionUsedInput, type FunnelLocalEvaluation, type FunnelLocalEvaluator, type FunnelLocalEvaluatorOptions, type FunnelLocalSession, type FunnelLocalSessionOptions, type FunnelSignalInput, IndianaError, IndianaServerOptions, createFunnelCampaignClient, createFunnelDecisionClient, createFunnelLocalEvaluator, createFunnelOrchestrationClient, createGuestToken, createIndianaServer, createNativeReceiptClient, createPaywallStartClient, createSynchronizedFunnelLocalEvaluator, renewFunnelRun };
7027
+ type BusinessCommand = Exclude<MerchantBridgeCommand, "bridge.ping" | "bridge.describe">;
7028
+ type MerchantBridgePrincipal = {
7029
+ kind: "user";
7030
+ nativeUserId: string;
7031
+ customerId?: string;
7032
+ } | {
7033
+ kind: "administrator";
7034
+ actorId: string;
7035
+ } | {
7036
+ kind: "service";
7037
+ };
7038
+ type MerchantBridgeHandlerContext = {
7039
+ request: Request;
7040
+ command: BusinessCommand;
7041
+ scope: MerchantBridgeRequest["scope"];
7042
+ principal: MerchantBridgePrincipal;
7043
+ /** Fresh Indiana authority for the original confirmed operation. */
7044
+ authority?: z.output<typeof merchantBridgeOperationAuthoritySchema>;
7045
+ };
7046
+ type MerchantBridgeHandlers = {
7047
+ [C in BusinessCommand]?: (data: z.output<(typeof merchantBridgeCommandInputs)[C]>, context: MerchantBridgeHandlerContext) => z.input<(typeof merchantBridgeCommandOutputs)[C]> | Promise<z.input<(typeof merchantBridgeCommandOutputs)[C]>>;
7048
+ };
7049
+ type MerchantBridgeHandlerOptions = {
7050
+ manifest: MerchantBridgeManifest;
7051
+ /** Keep active and, during rotation, previously accepted keys on the merchant backend. */
7052
+ authentication: readonly MerchantBridgeAuthentication[];
7053
+ /** Native login/CSRF/admin authorization; signed operation calls still require fresh Indiana authority. */
7054
+ authorize: (request: Request, input: MerchantBridgeRequest) => Promise<MerchantBridgePrincipal>;
7055
+ handlers: MerchantBridgeHandlers;
7056
+ /** Read current Indiana Server SDK authority; never derive it from the incoming request or a browser quote. */
7057
+ resolveOperationAuthority?: (input: z.output<typeof merchantBridgeOperationInputSchema>, context: MerchantBridgeHandlerContext) => Promise<z.input<typeof merchantBridgeOperationAuthoritySchema>>;
7058
+ };
7059
+ declare class MerchantBridgeHandlerError extends Error {
7060
+ readonly code: string;
7061
+ readonly status: number;
7062
+ readonly retryable: boolean;
7063
+ readonly recovery: string;
7064
+ constructor(code: string, status?: number, retryable?: boolean, recovery?: string);
7065
+ }
7066
+ /** Framework-independent Request → Response receiver for one fixed POST path. */
7067
+ declare function createMerchantBridgeHandler(options: MerchantBridgeHandlerOptions): (request: Request) => Promise<Response>;
7068
+
7069
+ type OperationReader = Pick<FoundationApi, "readSubscriptionOperation" | "readSubscriptionUpdate" | "readRefund">;
7070
+ /** Reads fresh Indiana facts with the merchant's Server Key. No browser quote or local status can grant execution. */
7071
+ declare function createMerchantBridgeAuthorityResolver(server: OperationReader): NonNullable<MerchantBridgeHandlerOptions["resolveOperationAuthority"]>;
7072
+
7073
+ export { ConfigurationSync, FeatureClientOptions, type FunnelDecisionInput, FunnelDecisionTimeoutError, type FunnelDecisionUsedInput, type FunnelLocalEvaluation, type FunnelLocalEvaluator, type FunnelLocalEvaluatorOptions, type FunnelLocalSession, type FunnelLocalSessionOptions, type FunnelSignalInput, IndianaError, IndianaServerOptions, type MerchantBridgeAuthentication, type MerchantBridgeHandlerContext, MerchantBridgeHandlerError, type MerchantBridgeHandlerOptions, type MerchantBridgeHandlers, type MerchantBridgePrincipal, createFunnelCampaignClient, createFunnelDecisionClient, createFunnelLocalEvaluator, createFunnelOrchestrationClient, createGuestToken, createIndianaServer, createMerchantBridgeAuthorityResolver, createMerchantBridgeHandler, createNativeReceiptClient, createPaywallStartClient, createSynchronizedFunnelLocalEvaluator, renewFunnelRun, signMerchantBridgeMessage, verifyMerchantBridgeMessage };