@uniforge/platform-core 0.1.0-alpha.2

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 (71) hide show
  1. package/dist/auth/index.d.cts +184 -0
  2. package/dist/auth/index.d.ts +184 -0
  3. package/dist/auth/index.js +62 -0
  4. package/dist/auth/index.js.map +1 -0
  5. package/dist/auth/index.mjs +33 -0
  6. package/dist/auth/index.mjs.map +1 -0
  7. package/dist/billing/index.d.cts +213 -0
  8. package/dist/billing/index.d.ts +213 -0
  9. package/dist/billing/index.js +43 -0
  10. package/dist/billing/index.js.map +1 -0
  11. package/dist/billing/index.mjs +16 -0
  12. package/dist/billing/index.mjs.map +1 -0
  13. package/dist/graphql/index.d.cts +100 -0
  14. package/dist/graphql/index.d.ts +100 -0
  15. package/dist/graphql/index.js +19 -0
  16. package/dist/graphql/index.js.map +1 -0
  17. package/dist/graphql/index.mjs +1 -0
  18. package/dist/graphql/index.mjs.map +1 -0
  19. package/dist/index.d.cts +19 -0
  20. package/dist/index.d.ts +19 -0
  21. package/dist/index.js +31 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/index.mjs +6 -0
  24. package/dist/index.mjs.map +1 -0
  25. package/dist/multi-store/index.d.cts +242 -0
  26. package/dist/multi-store/index.d.ts +242 -0
  27. package/dist/multi-store/index.js +53 -0
  28. package/dist/multi-store/index.js.map +1 -0
  29. package/dist/multi-store/index.mjs +23 -0
  30. package/dist/multi-store/index.mjs.map +1 -0
  31. package/dist/multi-tenant/index.d.cts +64 -0
  32. package/dist/multi-tenant/index.d.ts +64 -0
  33. package/dist/multi-tenant/index.js +19 -0
  34. package/dist/multi-tenant/index.js.map +1 -0
  35. package/dist/multi-tenant/index.mjs +1 -0
  36. package/dist/multi-tenant/index.mjs.map +1 -0
  37. package/dist/performance/index.d.cts +118 -0
  38. package/dist/performance/index.d.ts +118 -0
  39. package/dist/performance/index.js +19 -0
  40. package/dist/performance/index.js.map +1 -0
  41. package/dist/performance/index.mjs +1 -0
  42. package/dist/performance/index.mjs.map +1 -0
  43. package/dist/platform/index.d.cts +156 -0
  44. package/dist/platform/index.d.ts +156 -0
  45. package/dist/platform/index.js +64 -0
  46. package/dist/platform/index.js.map +1 -0
  47. package/dist/platform/index.mjs +37 -0
  48. package/dist/platform/index.mjs.map +1 -0
  49. package/dist/rbac/index.d.cts +140 -0
  50. package/dist/rbac/index.d.ts +140 -0
  51. package/dist/rbac/index.js +55 -0
  52. package/dist/rbac/index.js.map +1 -0
  53. package/dist/rbac/index.mjs +27 -0
  54. package/dist/rbac/index.mjs.map +1 -0
  55. package/dist/registry-efvajmOd.d.cts +118 -0
  56. package/dist/registry-efvajmOd.d.ts +118 -0
  57. package/dist/security/index.d.cts +148 -0
  58. package/dist/security/index.d.ts +148 -0
  59. package/dist/security/index.js +40 -0
  60. package/dist/security/index.js.map +1 -0
  61. package/dist/security/index.mjs +13 -0
  62. package/dist/security/index.mjs.map +1 -0
  63. package/dist/types-CgnJiK8Z.d.cts +74 -0
  64. package/dist/types-CgnJiK8Z.d.ts +74 -0
  65. package/dist/webhooks/index.d.cts +114 -0
  66. package/dist/webhooks/index.d.ts +114 -0
  67. package/dist/webhooks/index.js +19 -0
  68. package/dist/webhooks/index.js.map +1 -0
  69. package/dist/webhooks/index.mjs +1 -0
  70. package/dist/webhooks/index.mjs.map +1 -0
  71. package/package.json +94 -0
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Platform-agnostic GraphQL client types.
3
+ *
4
+ * These types define the GraphQL client interface used across all platform adapters.
5
+ * Platform-specific adapters wrap the base client with features like rate limiting
6
+ * and caching.
7
+ */
8
+ /** Platform-agnostic GraphQL client interface. */
9
+ interface GraphQLClient {
10
+ query<T = unknown>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResponse<T>>;
11
+ mutate<T = unknown>(mutation: string, variables?: Record<string, unknown>): Promise<GraphQLResponse<T>>;
12
+ }
13
+ /** Response from a GraphQL operation. */
14
+ interface GraphQLResponse<T = unknown> {
15
+ data?: T;
16
+ errors?: GraphQLError[];
17
+ extensions?: GraphQLExtensions;
18
+ }
19
+ /** A single GraphQL error. */
20
+ interface GraphQLError {
21
+ message: string;
22
+ locations?: Array<{
23
+ line: number;
24
+ column: number;
25
+ }>;
26
+ path?: Array<string | number>;
27
+ extensions?: Record<string, unknown>;
28
+ }
29
+ /** GraphQL response extensions including query cost information. */
30
+ interface GraphQLExtensions {
31
+ cost?: QueryCost;
32
+ [key: string]: unknown;
33
+ }
34
+ /** Shopify query cost information returned in response extensions. */
35
+ interface QueryCost {
36
+ requestedQueryCost: number;
37
+ actualQueryCost: number;
38
+ throttleStatus: ThrottleStatus;
39
+ }
40
+ /** Shopify API throttle status from query cost extensions. */
41
+ interface ThrottleStatus {
42
+ maximumAvailable: number;
43
+ currentlyAvailable: number;
44
+ restoreRate: number;
45
+ }
46
+ /** Configuration for creating a GraphQL client. */
47
+ interface GraphQLClientConfig {
48
+ shop: string;
49
+ accessToken: string;
50
+ apiVersion: string;
51
+ maxRetries?: number;
52
+ timeoutMs?: number;
53
+ }
54
+
55
+ /**
56
+ * Platform-agnostic rate limiting interfaces for GraphQL clients.
57
+ *
58
+ * Supports leaky bucket rate limiting based on Shopify's query cost system.
59
+ */
60
+
61
+ /** Rate limiter that controls GraphQL request throughput. */
62
+ interface RateLimiter {
63
+ acquire(): Promise<void>;
64
+ getStatus(): RateLimitStatus;
65
+ updateFromResponse(cost?: QueryCost): void;
66
+ }
67
+ /** Current rate limit status. */
68
+ interface RateLimitStatus {
69
+ available: number;
70
+ maximum: number;
71
+ restoreRate: number;
72
+ }
73
+ /** Configuration for rate limiter creation. */
74
+ interface RateLimitConfig {
75
+ maxAvailable?: number;
76
+ restoreRatePerSecond?: number;
77
+ minimumAvailable?: number;
78
+ }
79
+
80
+ /**
81
+ * Platform-agnostic GraphQL caching interfaces.
82
+ *
83
+ * Provides a cache layer for GraphQL query results to reduce API calls
84
+ * and improve response times.
85
+ */
86
+ /** Cache for GraphQL query results. */
87
+ interface GraphQLCache {
88
+ get<T = unknown>(key: string): Promise<T | undefined>;
89
+ set<T = unknown>(key: string, value: T, ttlSeconds?: number): Promise<void>;
90
+ invalidate(pattern: string): Promise<void>;
91
+ clear(): Promise<void>;
92
+ }
93
+ /** Configuration for GraphQL cache creation. */
94
+ interface CacheConfig {
95
+ enabled?: boolean;
96
+ defaultTtlSeconds?: number;
97
+ keyPrefix?: string;
98
+ }
99
+
100
+ export type { CacheConfig, GraphQLCache, GraphQLClient, GraphQLClientConfig, GraphQLError, GraphQLExtensions, GraphQLResponse, QueryCost, RateLimitConfig, RateLimitStatus, RateLimiter, ThrottleStatus };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/graphql/index.ts
17
+ var graphql_exports = {};
18
+ module.exports = __toCommonJS(graphql_exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/graphql/index.ts"],"sourcesContent":["/**\n * @uniforge/platform-core - GraphQL\n *\n * Platform-agnostic GraphQL client interfaces and types.\n */\n\n// Core types\nexport type {\n GraphQLClient,\n GraphQLResponse,\n GraphQLError,\n GraphQLExtensions,\n QueryCost,\n ThrottleStatus,\n GraphQLClientConfig,\n} from './types';\n\n// Rate limiting\nexport type {\n RateLimiter,\n RateLimitStatus,\n RateLimitConfig,\n} from './rate-limiting';\n\n// Caching\nexport type {\n GraphQLCache,\n CacheConfig,\n} from './caching';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,19 @@
1
+ export { b as PlatformCapabilities, P as PlatformProvider, a as PlatformRegistry } from './registry-efvajmOd.cjs';
2
+
3
+ /**
4
+ * @uniforge/platform-core
5
+ *
6
+ * Platform abstraction interfaces for e-commerce platform integrations.
7
+ * All platform adapters must implement these interfaces.
8
+ */
9
+ declare const VERSION = "0.0.0";
10
+ /**
11
+ * Base platform adapter interface.
12
+ * @deprecated Use PlatformProvider from '@uniforge/platform-core/platform' instead.
13
+ */
14
+ interface PlatformAdapter {
15
+ readonly name: string;
16
+ readonly version: string;
17
+ }
18
+
19
+ export { type PlatformAdapter, VERSION };
@@ -0,0 +1,19 @@
1
+ export { b as PlatformCapabilities, P as PlatformProvider, a as PlatformRegistry } from './registry-efvajmOd.js';
2
+
3
+ /**
4
+ * @uniforge/platform-core
5
+ *
6
+ * Platform abstraction interfaces for e-commerce platform integrations.
7
+ * All platform adapters must implement these interfaces.
8
+ */
9
+ declare const VERSION = "0.0.0";
10
+ /**
11
+ * Base platform adapter interface.
12
+ * @deprecated Use PlatformProvider from '@uniforge/platform-core/platform' instead.
13
+ */
14
+ interface PlatformAdapter {
15
+ readonly name: string;
16
+ readonly version: string;
17
+ }
18
+
19
+ export { type PlatformAdapter, VERSION };
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ VERSION: () => VERSION
24
+ });
25
+ module.exports = __toCommonJS(index_exports);
26
+ var VERSION = "0.0.0";
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ VERSION
30
+ });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @uniforge/platform-core\n *\n * Platform abstraction interfaces for e-commerce platform integrations.\n * All platform adapters must implement these interfaces.\n */\n\nexport const VERSION = '0.0.0';\n\n/**\n * Base platform adapter interface.\n * @deprecated Use PlatformProvider from '@uniforge/platform-core/platform' instead.\n */\nexport interface PlatformAdapter {\n readonly name: string;\n readonly version: string;\n}\n\n// Re-export PlatformProvider for convenience\nexport type { PlatformProvider } from './platform/provider';\nexport type { PlatformRegistry } from './platform/registry';\nexport type { PlatformCapabilities } from './platform/capabilities';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,IAAM,UAAU;","names":[]}
package/dist/index.mjs ADDED
@@ -0,0 +1,6 @@
1
+ // src/index.ts
2
+ var VERSION = "0.0.0";
3
+ export {
4
+ VERSION
5
+ };
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @uniforge/platform-core\n *\n * Platform abstraction interfaces for e-commerce platform integrations.\n * All platform adapters must implement these interfaces.\n */\n\nexport const VERSION = '0.0.0';\n\n/**\n * Base platform adapter interface.\n * @deprecated Use PlatformProvider from '@uniforge/platform-core/platform' instead.\n */\nexport interface PlatformAdapter {\n readonly name: string;\n readonly version: string;\n}\n\n// Re-export PlatformProvider for convenience\nexport type { PlatformProvider } from './platform/provider';\nexport type { PlatformRegistry } from './platform/registry';\nexport type { PlatformCapabilities } from './platform/capabilities';\n"],"mappings":";AAOO,IAAM,UAAU;","names":[]}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Multi-store enterprise types.
3
+ *
4
+ * Defines the Account hierarchy above Shop for enterprise merchants
5
+ * managing multiple Shopify stores under a single account.
6
+ */
7
+ /** Account type — individual has one store, enterprise has many. */
8
+ type AccountType = 'individual' | 'enterprise';
9
+ /** Account-level roles with hierarchy: owner > admin > member > viewer. */
10
+ type AccountRole = 'owner' | 'admin' | 'member' | 'viewer';
11
+ /** Role hierarchy for permission comparison (higher = more access). */
12
+ declare const ACCOUNT_ROLE_HIERARCHY: Record<AccountRole, number>;
13
+ /** Top-level account that owns one or more stores. */
14
+ interface Account {
15
+ id: string;
16
+ name: string;
17
+ type: AccountType;
18
+ isActive: boolean;
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ }
22
+ /** A store linked to an account (shopDomain is globally unique). */
23
+ interface AccountStore {
24
+ id: string;
25
+ accountId: string;
26
+ shopDomain: string;
27
+ storeName: string;
28
+ region: string | null;
29
+ currency: string | null;
30
+ locale: string | null;
31
+ timezone: string | null;
32
+ storeSettings: Record<string, unknown>;
33
+ isActive: boolean;
34
+ isPrimary: boolean;
35
+ createdAt: Date;
36
+ updatedAt: Date;
37
+ }
38
+ /** A member belonging to an account with role-based store access. */
39
+ interface AccountMember {
40
+ id: string;
41
+ accountId: string;
42
+ userEmail: string;
43
+ role: AccountRole;
44
+ allStoresAccess: boolean;
45
+ allowedStoreIds: string[];
46
+ permissions: string[];
47
+ createdAt: Date;
48
+ updatedAt: Date;
49
+ }
50
+ /** Request-scoped context for multi-store operations. */
51
+ interface AccountContext {
52
+ account: Account;
53
+ currentStore: AccountStore;
54
+ member: AccountMember | null;
55
+ stores: AccountStore[];
56
+ }
57
+ /** Input for creating a new account. */
58
+ interface CreateAccountInput {
59
+ name: string;
60
+ type: AccountType;
61
+ }
62
+ /** Input for updating an existing account. */
63
+ interface UpdateAccountInput {
64
+ name?: string;
65
+ type?: AccountType;
66
+ isActive?: boolean;
67
+ }
68
+ /** Input for adding a store to an account. */
69
+ interface AddStoreInput {
70
+ accountId: string;
71
+ shopDomain: string;
72
+ storeName: string;
73
+ region?: string;
74
+ currency?: string;
75
+ locale?: string;
76
+ timezone?: string;
77
+ storeSettings?: Record<string, unknown>;
78
+ isPrimary?: boolean;
79
+ }
80
+ /** Input for updating an existing account store. */
81
+ interface UpdateStoreInput {
82
+ storeName?: string;
83
+ region?: string;
84
+ currency?: string;
85
+ locale?: string;
86
+ timezone?: string;
87
+ storeSettings?: Record<string, unknown>;
88
+ isActive?: boolean;
89
+ isPrimary?: boolean;
90
+ }
91
+ /** Input for adding a member to an account. */
92
+ interface AddMemberInput {
93
+ accountId: string;
94
+ userEmail: string;
95
+ role: AccountRole;
96
+ allStoresAccess?: boolean;
97
+ allowedStoreIds?: string[];
98
+ permissions?: string[];
99
+ }
100
+ /** Input for updating an existing account member. */
101
+ interface UpdateMemberInput {
102
+ role?: AccountRole;
103
+ allStoresAccess?: boolean;
104
+ allowedStoreIds?: string[];
105
+ permissions?: string[];
106
+ }
107
+
108
+ /**
109
+ * AccountService interface for multi-store account management.
110
+ */
111
+
112
+ /** Service for managing accounts, stores, and members. */
113
+ interface AccountService {
114
+ createAccount(input: CreateAccountInput): Promise<Account>;
115
+ getAccount(accountId: string): Promise<Account | null>;
116
+ updateAccount(accountId: string, input: UpdateAccountInput): Promise<Account>;
117
+ deleteAccount(accountId: string): Promise<void>;
118
+ addStore(input: AddStoreInput): Promise<AccountStore>;
119
+ getStore(storeId: string): Promise<AccountStore | null>;
120
+ getStoreByDomain(shopDomain: string): Promise<AccountStore | null>;
121
+ listStores(accountId: string): Promise<AccountStore[]>;
122
+ updateStore(storeId: string, input: UpdateStoreInput): Promise<AccountStore>;
123
+ removeStore(storeId: string): Promise<void>;
124
+ addMember(input: AddMemberInput): Promise<AccountMember>;
125
+ getMember(memberId: string): Promise<AccountMember | null>;
126
+ getMemberByEmail(accountId: string, userEmail: string): Promise<AccountMember | null>;
127
+ listMembers(accountId: string): Promise<AccountMember[]>;
128
+ updateMember(memberId: string, input: UpdateMemberInput): Promise<AccountMember>;
129
+ removeMember(memberId: string): Promise<void>;
130
+ canAccessStore(accountId: string, userEmail: string, storeId: string): Promise<boolean>;
131
+ isRoleAtLeast(accountId: string, userEmail: string, minimumRole: AccountRole): Promise<boolean>;
132
+ }
133
+
134
+ /**
135
+ * Shared settings types and service interface for multi-store accounts.
136
+ *
137
+ * Settings cascade: store override > account shared > default value.
138
+ */
139
+ /** A shared setting scoped to an account, optionally limited to specific stores. */
140
+ interface AccountSharedSetting {
141
+ id: string;
142
+ accountId: string;
143
+ settingKey: string;
144
+ settingValue: unknown;
145
+ /** Store IDs this setting applies to. Null means all stores. */
146
+ appliesToStores: string[] | null;
147
+ createdAt: Date;
148
+ updatedAt: Date;
149
+ }
150
+ /** Input for creating or updating a shared setting. */
151
+ interface SetSharedSettingInput {
152
+ accountId: string;
153
+ settingKey: string;
154
+ settingValue: unknown;
155
+ appliesToStores?: string[] | null;
156
+ }
157
+ /** Service for managing account-level shared settings with cascade resolution. */
158
+ interface SharedSettingsService {
159
+ /** Set a shared setting (creates or updates). */
160
+ set(input: SetSharedSettingInput): Promise<AccountSharedSetting>;
161
+ /** Get a single shared setting by key. */
162
+ get(accountId: string, settingKey: string): Promise<AccountSharedSetting | null>;
163
+ /** List all shared settings for an account. */
164
+ list(accountId: string): Promise<AccountSharedSetting[]>;
165
+ /** Delete a shared setting. */
166
+ delete(accountId: string, settingKey: string): Promise<void>;
167
+ /**
168
+ * Resolve the effective value for a setting key using cascade logic:
169
+ * 1. Store-specific override (AccountStore.storeSettings[key])
170
+ * 2. Account shared setting (where appliesToStores includes storeId or is null)
171
+ * 3. Default value parameter
172
+ */
173
+ resolve<T = unknown>(accountId: string, storeId: string, settingKey: string, defaultValue: T): Promise<T>;
174
+ }
175
+
176
+ /**
177
+ * AccountMiddleware interface for extracting multi-store context from requests.
178
+ */
179
+
180
+ /** Middleware for extracting and validating account context. */
181
+ interface AccountMiddleware {
182
+ /**
183
+ * Extract AccountContext from a shop domain.
184
+ * Returns null if the shop is not linked to any account.
185
+ */
186
+ getAccountContext(shopDomain: string, userEmail?: string): Promise<AccountContext | null>;
187
+ /**
188
+ * Validate that a user can access a specific store within their account.
189
+ * Returns true if access is allowed.
190
+ */
191
+ validateStoreAccess(accountId: string, userEmail: string, storeId: string): Promise<boolean>;
192
+ }
193
+
194
+ /**
195
+ * Account pricing types and constants for multi-store enterprise billing.
196
+ *
197
+ * Pure interface definitions — no billing dependency required.
198
+ */
199
+ /** A pricing tier that defines cost per store for a range of store counts. */
200
+ interface AccountPricingTier {
201
+ /** Minimum number of stores for this tier (inclusive). */
202
+ minStores: number;
203
+ /** Maximum number of stores for this tier (inclusive, null = unlimited). */
204
+ maxStores: number | null;
205
+ /** Cost per store per month in this tier. */
206
+ pricePerStore: number;
207
+ }
208
+ /** Result of an account pricing calculation. */
209
+ interface AccountPricingResult {
210
+ /** Base monthly price (includes some stores). */
211
+ basePrice: number;
212
+ /** Number of stores included in the base price. */
213
+ includedStores: number;
214
+ /** Additional cost for stores beyond included count. */
215
+ additionalStoreCost: number;
216
+ /** Total monthly price. */
217
+ totalMonthlyPrice: number;
218
+ /** Breakdown by tier for transparency. */
219
+ tierBreakdown: Array<{
220
+ tier: AccountPricingTier;
221
+ storeCount: number;
222
+ cost: number;
223
+ }>;
224
+ }
225
+ /**
226
+ * Interface-only billing service for enterprise accounts.
227
+ * Implementation deferred until billing is merged to develop.
228
+ */
229
+ interface AccountBillingService {
230
+ /** Calculate pricing for an account given the number of stores. */
231
+ calculatePricing(storeCount: number): AccountPricingResult;
232
+ /** Get the current pricing tiers. */
233
+ getPricingTiers(): AccountPricingTier[];
234
+ }
235
+ /** Default pricing tiers for enterprise accounts. */
236
+ declare const DEFAULT_PRICING_TIERS: AccountPricingTier[];
237
+ /** Default base price that includes up to 3 stores. */
238
+ declare const DEFAULT_BASE_PRICE = 99;
239
+ /** Number of stores included in the base price. */
240
+ declare const DEFAULT_INCLUDED_STORES = 3;
241
+
242
+ export { ACCOUNT_ROLE_HIERARCHY, type Account, type AccountBillingService, type AccountContext, type AccountMember, type AccountMiddleware, type AccountPricingResult, type AccountPricingTier, type AccountRole, type AccountService, type AccountSharedSetting, type AccountStore, type AccountType, type AddMemberInput, type AddStoreInput, type CreateAccountInput, DEFAULT_BASE_PRICE, DEFAULT_INCLUDED_STORES, DEFAULT_PRICING_TIERS, type SetSharedSettingInput, type SharedSettingsService, type UpdateAccountInput, type UpdateMemberInput, type UpdateStoreInput };