@buildbase/sdk 0.0.50 → 0.0.53

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 (52) hide show
  1. package/AGENTS.md +41 -13
  2. package/CHANGELOG.md +109 -0
  3. package/README.md +343 -44
  4. package/dist/css/styles.css +1 -1
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.d.ts +874 -53
  7. package/dist/index.mjs +1 -1
  8. package/dist/mcp/index.cjs +1 -0
  9. package/dist/mcp/index.d.ts +1402 -0
  10. package/dist/mcp/index.mjs +1 -0
  11. package/dist/react/chunks/SettingsDialog-BxDYsie6.mjs +2 -0
  12. package/dist/react/chunks/SettingsDialog-Dy8W3NA6.cjs +2 -0
  13. package/dist/react/chunks/SubscriptionDialog-6c5dHoQd.mjs +2 -0
  14. package/dist/react/chunks/SubscriptionDialog-CpVnnXJg.cjs +2 -0
  15. package/dist/react/chunks/ar-1Z1MOGAP.mjs +2 -0
  16. package/dist/react/chunks/ar-VGzBv3AZ.cjs +2 -0
  17. package/dist/react/chunks/de-BjdDg60Y.cjs +2 -0
  18. package/dist/react/chunks/de-CXUItplO.mjs +2 -0
  19. package/dist/react/chunks/es-BBPsSZUp.cjs +2 -0
  20. package/dist/react/chunks/es-BTbzVutz.mjs +2 -0
  21. package/dist/react/chunks/fr-Cax48X_S.cjs +2 -0
  22. package/dist/react/chunks/fr-DPMeOQu3.mjs +2 -0
  23. package/dist/react/chunks/hi-BJqvpG6d.cjs +2 -0
  24. package/dist/react/chunks/hi-JfJx-LV7.mjs +2 -0
  25. package/dist/react/chunks/ja-CDGtLzTk.mjs +2 -0
  26. package/dist/react/chunks/ja-DvVyj5xX.cjs +2 -0
  27. package/dist/react/chunks/react-4SlWxHdh.cjs +2 -0
  28. package/dist/react/chunks/react-OL1uSkpr.mjs +2 -0
  29. package/dist/react/chunks/zh-BAcqxkxk.cjs +2 -0
  30. package/dist/react/chunks/zh-BNZ2Ooe8.mjs +2 -0
  31. package/dist/react/index.cjs +1 -1
  32. package/dist/react/index.d.ts +484 -93
  33. package/dist/react/index.mjs +1 -1
  34. package/package.json +22 -5
  35. package/dist/react/chunks/SubscriptionDialog-A6oETKbb.cjs +0 -2
  36. package/dist/react/chunks/SubscriptionDialog-nuMunBn4.mjs +0 -2
  37. package/dist/react/chunks/ar-BRvKHRYS.cjs +0 -2
  38. package/dist/react/chunks/ar-IhPhJAZA.mjs +0 -2
  39. package/dist/react/chunks/de-D3q0vQBG.cjs +0 -2
  40. package/dist/react/chunks/de-bvh5IFSx.mjs +0 -2
  41. package/dist/react/chunks/es-B9kiwJmF.cjs +0 -2
  42. package/dist/react/chunks/es-TyUz4_E1.mjs +0 -2
  43. package/dist/react/chunks/fr-C500Ytao.cjs +0 -2
  44. package/dist/react/chunks/fr-CKm-bSvG.mjs +0 -2
  45. package/dist/react/chunks/hi-CfFhH2uQ.cjs +0 -2
  46. package/dist/react/chunks/hi-Ck9cPpd-.mjs +0 -2
  47. package/dist/react/chunks/ja-AM4H1tXw.mjs +0 -2
  48. package/dist/react/chunks/ja-DfROrx_j.cjs +0 -2
  49. package/dist/react/chunks/react-CTX0_nOV.cjs +0 -2
  50. package/dist/react/chunks/react-DzQupoqH.mjs +0 -2
  51. package/dist/react/chunks/zh-CLmBh-it.cjs +0 -2
  52. package/dist/react/chunks/zh-DCVPxie-.mjs +0 -2
@@ -1,5 +1,5 @@
1
- import * as react from 'react';
2
- import react__default, { ReactNode } from 'react';
1
+ import * as React$1 from 'react';
2
+ import React__default, { ReactNode } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
 
5
5
  interface IDocument {
@@ -1148,6 +1148,15 @@ declare abstract class BaseApi {
1148
1148
  * Tries to parse JSON error body; falls back to status-based message.
1149
1149
  */
1150
1150
  protected throwResponseError(response: Response, defaultMsg: string): Promise<never>;
1151
+ /**
1152
+ * Tagged template that URI-encodes interpolated path segments, so IDs
1153
+ * containing `/ ? # ..` can't retarget the request path.
1154
+ * Use for PATH segments only — never for pre-built query strings.
1155
+ *
1156
+ * @example
1157
+ * this.apiPath`workspaces/${workspaceId}/users/${userId}`
1158
+ */
1159
+ protected apiPath(strings: TemplateStringsArray, ...values: Array<string | number>): string;
1151
1160
  /**
1152
1161
  * Parse JSON and unwrap `{ success, data }` envelope if present.
1153
1162
  * Throws if `success` is explicitly `false`.
@@ -1209,6 +1218,33 @@ interface IBetaConfig extends IDocument {
1209
1218
  };
1210
1219
  }
1211
1220
 
1221
+ /**
1222
+ * API client for the signed-in user's "connected agents" — the AI agents they
1223
+ * have authorized to access their account. Session-authed (x-session-id),
1224
+ * scoped to the current user. Extends BaseApi for shared URL/auth/request handling.
1225
+ */
1226
+
1227
+ /** An agent the user has connected to their account. */
1228
+ interface IConnectedAgent {
1229
+ /** OAuth client id of the connected agent. */
1230
+ clientId: string;
1231
+ /** Display name of the agent. */
1232
+ title: string;
1233
+ /** Scopes the user granted it. */
1234
+ scope: string[];
1235
+ /** When the grant was last (re)approved (ISO string). */
1236
+ lastGrantedAt?: string;
1237
+ }
1238
+ declare class ConnectedAgentsApi extends BaseApi {
1239
+ constructor(config: Pick<IOsConfig, 'serverUrl' | 'version'> & {
1240
+ sessionId?: string;
1241
+ });
1242
+ /** List the agents the current user has connected. */
1243
+ list(signal?: AbortSignal): Promise<IConnectedAgent[]>;
1244
+ /** Disconnect one agent from the current user's account. */
1245
+ revoke(clientId: string): Promise<void>;
1246
+ }
1247
+
1212
1248
  declare class PushApi extends BaseApi {
1213
1249
  constructor(config: Pick<IBaseApiConfig, 'serverUrl' | 'version' | 'orgId' | 'sessionId'>);
1214
1250
  getVapidPublicKey(): Promise<{
@@ -2159,8 +2195,9 @@ interface PermissionContext {
2159
2195
  * 3. settings.workspace.permissions[role] (org-level template)
2160
2196
  * 4. DEFAULT_ROLE_PERMISSIONS[role] (SDK built-in defaults)
2161
2197
  * 5. Merge in appPermissions (developer-defined) for the role
2162
- * 6. If role not found → use defaultRole from settings, then 'member'
2163
- * 7. Apply setting restrictions (canInviteMembers, canCreateWorkspace)
2198
+ * 6. If role not found → use an explicitly-configured, known `defaultRole`;
2199
+ * otherwise deny (no silent 'member' fallback for unknown roles)
2200
+ * 7. Apply setting restrictions (canInviteMembers)
2164
2201
  */
2165
2202
  declare function resolvePermissions(ctx: PermissionContext): Set<string>;
2166
2203
  /**
@@ -2195,41 +2232,18 @@ interface BetaFormResponse {
2195
2232
  message: string;
2196
2233
  }
2197
2234
 
2198
- /** Props passed to the custom loadingComponent render function. */
2199
- interface LoadingProps {
2200
- /** Human-readable, locale-aware message describing what's happening */
2201
- message: string;
2202
- }
2203
- interface FullScreenLoaderContextValue {
2204
- /** Show the full-screen loader with a message */
2205
- show: (message: string) => void;
2206
- /** Hide the full-screen loader */
2207
- hide: () => void;
2208
- /** Whether the loader is currently visible */
2209
- visible: boolean;
2210
- /** Current loader message */
2211
- message: string;
2212
- }
2213
- /**
2214
- * Hook to control the full-screen loader from anywhere in the SDK.
2215
- *
2216
- * @example
2217
- * ```tsx
2218
- * const { show, hide } = useFullScreenLoader();
2219
- *
2220
- * show('Processing payment...');
2221
- * await processPayment();
2222
- * hide();
2223
- * ```
2224
- */
2225
- declare function useFullScreenLoader(): FullScreenLoaderContextValue;
2226
-
2227
2235
  /**
2228
2236
  * Type-safe translation keys for the BuildBase SDK.
2229
2237
  * All user-facing strings are defined here.
2230
2238
  */
2231
2239
  interface SDKMessages {
2232
2240
  security: {
2241
+ connectedAgentsTitle: string;
2242
+ connectedAgentsDescription: string;
2243
+ connectedAgentsDisconnect: string;
2244
+ connectedAgentsEmpty: string;
2245
+ connectedAgentsAccess: string;
2246
+ connectedAgentsGranted: string;
2233
2247
  inactive: string;
2234
2248
  inactiveHint: string;
2235
2249
  passkeysTitle: string;
@@ -2291,6 +2305,8 @@ interface SDKMessages {
2291
2305
  noPermissionTitle: string;
2292
2306
  noPermissionDescription: string;
2293
2307
  billingManageOnly: string;
2308
+ openSettings: string;
2309
+ back: string;
2294
2310
  };
2295
2311
  };
2296
2312
  subscription: {
@@ -2401,6 +2417,9 @@ interface SDKMessages {
2401
2417
  };
2402
2418
  plan: string;
2403
2419
  invoicesTab: string;
2420
+ tabsLabel: string;
2421
+ endsOn: string;
2422
+ versionLabel: string;
2404
2423
  changePlanButton: string;
2405
2424
  noPlanAssigned: string;
2406
2425
  free: string;
@@ -2441,6 +2460,7 @@ interface SDKMessages {
2441
2460
  trialBadge: string;
2442
2461
  };
2443
2462
  users: {
2463
+ emailPlaceholder: string;
2444
2464
  title: string;
2445
2465
  adminOnly: string;
2446
2466
  inviteByEmail: string;
@@ -2556,6 +2576,7 @@ interface SDKMessages {
2556
2576
  imageUrlPlaceholder: string;
2557
2577
  imageUrlDescription: string;
2558
2578
  previewLabel: string;
2579
+ previewImageAlt: string;
2559
2580
  success: string;
2560
2581
  chooseEmoji: string;
2561
2582
  customImageUrl: string;
@@ -2684,6 +2705,7 @@ interface SDKMessages {
2684
2705
  billingInterval: string;
2685
2706
  };
2686
2707
  beta: {
2708
+ logoAlt: string;
2687
2709
  nameLabel: string;
2688
2710
  emailLabel: string;
2689
2711
  submitText: string;
@@ -2734,6 +2756,7 @@ interface SDKMessages {
2734
2756
  searchCurrency: string;
2735
2757
  chooseTimezone: string;
2736
2758
  searchTimezone: string;
2759
+ noResults: string;
2737
2760
  };
2738
2761
  push: {
2739
2762
  failedToSubscribe: string;
@@ -2829,9 +2852,19 @@ interface SDKMessages {
2829
2852
  }
2830
2853
  /** Supported locale codes */
2831
2854
  type SDKLocale = 'en' | 'es' | 'fr' | 'de' | 'ja' | 'zh' | 'hi' | 'ar';
2855
+ /** Recursively optional version of a message tree (leaves stay strings) */
2856
+ type DeepPartialMessages<T> = {
2857
+ [K in keyof T]?: T[K] extends string ? string : DeepPartialMessages<T[K]>;
2858
+ };
2859
+ /**
2860
+ * Per-key overrides for SDK UI strings — any subset of the SDKMessages tree.
2861
+ * Deep-merged over the active locale bundle by the translation provider.
2862
+ */
2863
+ type PartialSDKMessages = DeepPartialMessages<SDKMessages>;
2832
2864
  /**
2833
2865
  * Generates a union of all valid dot-separated key paths from SDKMessages.
2834
- * Supports up to 3 levels of nesting (covers all current keys).
2866
+ * Supports up to 4 levels of nesting (covers all current keys, e.g.
2867
+ * "notifications.unblock.firefox.step1").
2835
2868
  * Used to make `t()` calls compile-time safe with autocomplete.
2836
2869
  *
2837
2870
  * @example
@@ -2856,6 +2889,185 @@ type Level4 = {
2856
2889
  /** Union of all valid translation key paths (e.g. "settings.titles.profile") */
2857
2890
  type TranslationKey = Level2 | Level3 | Level4;
2858
2891
 
2892
+ /** Props passed to the custom loadingComponent render function. */
2893
+ interface LoadingProps {
2894
+ /** Human-readable, locale-aware message describing what's happening */
2895
+ message: string;
2896
+ }
2897
+ interface FullScreenLoaderContextValue {
2898
+ /** Show the full-screen loader with a message */
2899
+ show: (message: string) => void;
2900
+ /** Hide the full-screen loader */
2901
+ hide: () => void;
2902
+ /** Whether the loader is currently visible */
2903
+ visible: boolean;
2904
+ /** Current loader message */
2905
+ message: string;
2906
+ }
2907
+ /**
2908
+ * Hook to control the full-screen loader from anywhere in the SDK.
2909
+ *
2910
+ * @example
2911
+ * ```tsx
2912
+ * const { show, hide } = useFullScreenLoader();
2913
+ *
2914
+ * show('Processing payment...');
2915
+ * await processPayment();
2916
+ * hide();
2917
+ * ```
2918
+ */
2919
+ declare function useFullScreenLoader(): FullScreenLoaderContextValue;
2920
+
2921
+ /**
2922
+ * Settings screen identifiers — kept in a leaf module (no component imports)
2923
+ * so consumers of `SettingsScreen` don't pull the whole settings dialog
2924
+ * (and its 12 screens) into their bundle. The dialog itself is lazy-loaded.
2925
+ */
2926
+ declare const SettingsScreen: {
2927
+ readonly Profile: "profile";
2928
+ readonly Security: "security";
2929
+ readonly ConnectedAgents: "connected-agents";
2930
+ readonly General: "general";
2931
+ readonly Users: "users";
2932
+ readonly Subscription: "subscription";
2933
+ readonly Usage: "usage";
2934
+ readonly Credits: "credits";
2935
+ readonly Features: "features";
2936
+ readonly Notifications: "notifications";
2937
+ readonly Permissions: "permissions";
2938
+ readonly Danger: "danger";
2939
+ };
2940
+ type WorkspaceSettingsSection = (typeof SettingsScreen)[keyof typeof SettingsScreen];
2941
+ /** Set of all valid section values — used for runtime validation */
2942
+ declare const SETTINGS_SCREENS: Set<WorkspaceSettingsSection>;
2943
+
2944
+ /**
2945
+ * Implementor-facing UI configuration for the SDK.
2946
+ *
2947
+ * Every option is additive and defaults to the current behavior, so the
2948
+ * config is never required. Visibility options can only HIDE UI — they
2949
+ * never bypass platform permissions, which remain the security floor.
2950
+ */
2951
+ interface SDKUIConfig {
2952
+ /** Workspace settings dialog. */
2953
+ settings?: {
2954
+ /**
2955
+ * Show/hide sidebar sections of the workspace settings dialog.
2956
+ * Omitted sections stay visible. Hiding a section also prevents its
2957
+ * screen from rendering via deep links or `defaultSection`.
2958
+ *
2959
+ * @example
2960
+ * ```tsx
2961
+ * ui={{ settings: { sections: { credits: false, 'connected-agents': false } } }}
2962
+ * ```
2963
+ */
2964
+ sections?: Partial<Record<WorkspaceSettingsSection, boolean>>;
2965
+ /** Profile screen — hide individual preference fields. */
2966
+ profile?: {
2967
+ language?: boolean;
2968
+ country?: boolean;
2969
+ currency?: boolean;
2970
+ timezone?: boolean;
2971
+ };
2972
+ /** Security screen — hide passkey row actions. */
2973
+ security?: {
2974
+ passkeyRename?: boolean;
2975
+ passkeyDelete?: boolean;
2976
+ };
2977
+ /** General screen — hide workspace editing affordances. */
2978
+ general?: {
2979
+ nameEdit?: boolean;
2980
+ iconEditor?: boolean;
2981
+ };
2982
+ /** Users screen — hide member-management affordances. */
2983
+ users?: {
2984
+ invite?: boolean;
2985
+ roleChange?: boolean;
2986
+ remove?: boolean;
2987
+ /** Seat usage / seat pricing block above the member list. */
2988
+ seatPricing?: boolean;
2989
+ };
2990
+ /** Subscription screen — hide billing actions. */
2991
+ subscription?: {
2992
+ changePlan?: boolean;
2993
+ cancel?: boolean;
2994
+ managePayment?: boolean;
2995
+ invoicesTab?: boolean;
2996
+ /** Expandable plan features/limits/quotas breakdown. */
2997
+ planDetails?: boolean;
2998
+ };
2999
+ /** Credits screen — hide purchase/history blocks. */
3000
+ credits?: {
3001
+ buyButton?: boolean;
3002
+ transactions?: boolean;
3003
+ };
3004
+ /** Notifications screen — hide the push block or preference columns. */
3005
+ notifications?: {
3006
+ /** Browser push-notification block (subscribe/unsubscribe). */
3007
+ push?: boolean;
3008
+ /** Per-event email preference column. */
3009
+ emailToggles?: boolean;
3010
+ /** Per-event push preference column. */
3011
+ pushToggles?: boolean;
3012
+ };
3013
+ };
3014
+ /** Workspace switcher dialog (client-side; ANDed with server settings). */
3015
+ workspaceSwitcher?: {
3016
+ /** Overrides `settings.workspace.showSwitcher` to hide the switcher UI. */
3017
+ show?: boolean;
3018
+ createButton?: boolean;
3019
+ /** Subscription plan badge on each workspace row. */
3020
+ planBadge?: boolean;
3021
+ memberCount?: boolean;
3022
+ };
3023
+ /** SDK behaviors that are currently automatic. */
3024
+ behavior?: {
3025
+ /**
3026
+ * Auto-open the plan picker dialog when a workspace has no
3027
+ * subscription. Default true (current behavior).
3028
+ */
3029
+ autoOpenPlanDialog?: boolean;
3030
+ /** Default `daysThreshold` for `WhenTrialEnding` (default 3). */
3031
+ trialEndingDays?: number;
3032
+ };
3033
+ /**
3034
+ * Per-key overrides for SDK UI strings, deep-merged over the active
3035
+ * locale bundle. Use to rebrand terms (e.g. "Credits" → "Tokens")
3036
+ * without forking locale files.
3037
+ *
3038
+ * @example
3039
+ * ```tsx
3040
+ * ui={{ messages: { settings: { sidebar: { credits: 'Tokens' } } } }}
3041
+ * ```
3042
+ */
3043
+ messages?: PartialSDKMessages;
3044
+ /**
3045
+ * Strings for the top-level error boundary's default fallback.
3046
+ * Plain strings (not i18n keys) — the boundary renders even when the
3047
+ * translation layer itself has crashed.
3048
+ */
3049
+ errorBoundary?: {
3050
+ title?: string;
3051
+ retryLabel?: string;
3052
+ };
3053
+ /** Locale-aware formatting defaults. */
3054
+ formats?: {
3055
+ /**
3056
+ * Options for dates the SDK renders (passkey activity, connected agents,
3057
+ * etc.). Default: `{ dateStyle: 'medium' }`.
3058
+ */
3059
+ date?: Intl.DateTimeFormatOptions;
3060
+ };
3061
+ }
3062
+ /** Access the implementor-provided UI config (empty object when unset). */
3063
+ declare function useUIConfig(): SDKUIConfig;
3064
+ /**
3065
+ * Deep-merge a per-instance UI config over a base (provider-global) one.
3066
+ * Instance leaves win; objects merge recursively. Used by components that
3067
+ * accept their own `ui` prop (e.g. WorkspaceSettingsDialog).
3068
+ */
3069
+ declare function mergeUIConfig(base: SDKUIConfig, override?: SDKUIConfig): SDKUIConfig;
3070
+
2859
3071
  /** Values that can be interpolated into ICU messages */
2860
3072
  type TranslationValues = Record<string, string | number | boolean>;
2861
3073
  /** All supported locale codes */
@@ -2891,7 +3103,7 @@ declare function useTranslation(): {
2891
3103
  };
2892
3104
 
2893
3105
  interface SaaSOSProviderProps extends IOsState {
2894
- children: react__default.ReactNode;
3106
+ children: React__default.ReactNode;
2895
3107
  /** SDK UI language. Defaults to 'en'. Supported: en, es, fr, de, ja, zh, hi, ar */
2896
3108
  locale?: SDKLocale;
2897
3109
  /**
@@ -2962,26 +3174,49 @@ interface SaaSOSProviderProps extends IOsState {
2962
3174
  * >
2963
3175
  * ```
2964
3176
  */
2965
- loadingComponent?: react__default.ReactNode | ((props: LoadingProps) => react__default.ReactNode);
3177
+ loadingComponent?: React__default.ReactNode | ((props: LoadingProps) => React__default.ReactNode);
3178
+ /**
3179
+ * UI configuration — control which parts of the SDK UI are shown and
3180
+ * override individual UI strings. Everything defaults to visible/current
3181
+ * behavior; visibility options only hide UI and never bypass permissions.
3182
+ *
3183
+ * @example Hide settings sections and rebrand a label
3184
+ * ```tsx
3185
+ * <SaaSOSProvider
3186
+ * ui={{
3187
+ * settings: { sections: { credits: false, notifications: false } },
3188
+ * messages: { settings: { sidebar: { subscription: 'Billing' } } },
3189
+ * }}
3190
+ * >
3191
+ * ```
3192
+ */
3193
+ ui?: SDKUIConfig;
2966
3194
  }
2967
- declare const SaaSOSProvider: react__default.FC<SaaSOSProviderProps>;
3195
+ declare const SaaSOSProvider: React__default.FC<SaaSOSProviderProps>;
2968
3196
 
2969
3197
  interface IProps$2 {
2970
3198
  children: React.ReactNode;
3199
+ /** Optional component/element to show while auth status is still loading. */
3200
+ loadingComponent?: React.ReactNode;
3201
+ /** Optional component/element to show when the condition is not met. */
3202
+ fallbackComponent?: React.ReactNode;
2971
3203
  }
2972
3204
  /**
2973
3205
  * Conditional component that renders children only when user is authenticated.
2974
- * Returns null if user is not authenticated or authentication status is still loading.
3206
+ * Optionally pass loadingComponent (while auth resolves) or fallbackComponent
3207
+ * (when unauthenticated) — both default to null, matching the other SDK gates.
2975
3208
  *
2976
3209
  * @param props - Component props
2977
3210
  * @param props.children - Content to render when authenticated
3211
+ * @param props.loadingComponent - Optional content while auth status resolves
3212
+ * @param props.fallbackComponent - Optional content when not authenticated
2978
3213
  *
2979
3214
  * @example
2980
3215
  * ```tsx
2981
3216
  * function App() {
2982
3217
  * return (
2983
3218
  * <SaaSOSProvider {...config}>
2984
- * <WhenAuthenticated>
3219
+ * <WhenAuthenticated loadingComponent={<Skeleton />}>
2985
3220
  * <Dashboard />
2986
3221
  * </WhenAuthenticated>
2987
3222
  * <WhenUnauthenticated>
@@ -2993,16 +3228,19 @@ interface IProps$2 {
2993
3228
  * ```
2994
3229
  */
2995
3230
  declare const WhenAuthenticated: {
2996
- (props: IProps$2): react.ReactNode;
3231
+ (props: IProps$2): React$1.ReactNode;
2997
3232
  displayName: string;
2998
3233
  };
2999
3234
  /**
3000
3235
  * Conditional component that renders children only when user is NOT authenticated.
3001
- * Returns null if user is authenticated.
3002
- * Note: Also renders during loading/redirecting states (when not yet authenticated).
3236
+ * Optionally pass loadingComponent (while auth resolves) or fallbackComponent
3237
+ * (when authenticated) — both default to null, matching the other SDK gates.
3238
+ * Note: without loadingComponent, nothing renders during loading/redirecting states.
3003
3239
  *
3004
3240
  * @param props - Component props
3005
3241
  * @param props.children - Content to render when unauthenticated
3242
+ * @param props.loadingComponent - Optional content while auth status resolves
3243
+ * @param props.fallbackComponent - Optional content when authenticated
3006
3244
  *
3007
3245
  * @example
3008
3246
  * ```tsx
@@ -3038,27 +3276,10 @@ declare const WhenAuthenticated: {
3038
3276
  * ```
3039
3277
  */
3040
3278
  declare const WhenUnauthenticated: {
3041
- (props: IProps$2): react.ReactNode;
3279
+ (props: IProps$2): React$1.ReactNode;
3042
3280
  displayName: string;
3043
3281
  };
3044
3282
 
3045
- declare const SettingsScreen: {
3046
- readonly Profile: "profile";
3047
- readonly Security: "security";
3048
- readonly General: "general";
3049
- readonly Users: "users";
3050
- readonly Subscription: "subscription";
3051
- readonly Usage: "usage";
3052
- readonly Credits: "credits";
3053
- readonly Features: "features";
3054
- readonly Notifications: "notifications";
3055
- readonly Permissions: "permissions";
3056
- readonly Danger: "danger";
3057
- };
3058
- type WorkspaceSettingsSection = (typeof SettingsScreen)[keyof typeof SettingsScreen];
3059
- /** Set of all valid section values — used for runtime validation */
3060
- declare const SETTINGS_SCREENS: Set<WorkspaceSettingsSection>;
3061
-
3062
3283
  declare function useSaaSAuth(): {
3063
3284
  signIn: (returnUrl?: string) => Promise<void>;
3064
3285
  signOut: () => Promise<void>;
@@ -3114,7 +3335,7 @@ interface IProps$1 {
3114
3335
  * ```
3115
3336
  */
3116
3337
  declare const WhenRoles: {
3117
- (props: IProps$1): react.ReactNode;
3338
+ (props: IProps$1): React$1.ReactNode;
3118
3339
  displayName: string;
3119
3340
  };
3120
3341
  /**
@@ -3153,7 +3374,7 @@ declare const WhenRoles: {
3153
3374
  * ```
3154
3375
  */
3155
3376
  declare const WhenWorkspaceRoles: {
3156
- (props: IProps$1): react.ReactNode;
3377
+ (props: IProps$1): React$1.ReactNode;
3157
3378
  displayName: string;
3158
3379
  };
3159
3380
 
@@ -3184,7 +3405,7 @@ interface WhenPermissionProps {
3184
3405
  * ```
3185
3406
  */
3186
3407
  declare const WhenPermission: {
3187
- (props: WhenPermissionProps): react.ReactNode;
3408
+ (props: WhenPermissionProps): React$1.ReactNode;
3188
3409
  displayName: string;
3189
3410
  };
3190
3411
 
@@ -3225,6 +3446,52 @@ declare function usePermissions(workspace?: WorkspaceLike | null): {
3225
3446
  role: string | null;
3226
3447
  };
3227
3448
 
3449
+ /** Memoized ConnectedAgentsApi instance. Recreates only when serverUrl/version change. */
3450
+ declare function useConnectedAgentsApi(): ConnectedAgentsApi;
3451
+
3452
+ interface UseConnectedAgents {
3453
+ /** The agents the current user has connected to their account. */
3454
+ agents: IConnectedAgent[];
3455
+ /** True while the initial list is loading. */
3456
+ loading: boolean;
3457
+ /** Error message from the last list/revoke, if any. */
3458
+ error: string | null;
3459
+ /** The clientId currently being disconnected, or null. */
3460
+ revoking: string | null;
3461
+ /** Re-fetch the list. */
3462
+ refresh: () => Promise<void>;
3463
+ /** Disconnect an agent, then optimistically drop it from the list. */
3464
+ revoke: (clientId: string) => Promise<void>;
3465
+ }
3466
+ /**
3467
+ * Headless data + actions for a "Connected agents" screen. Session-authed and
3468
+ * scoped to the signed-in user. Wrap your UI around it, or use the ready-made
3469
+ * `<ConnectedAgents />` component.
3470
+ */
3471
+ declare function useConnectedAgents(): UseConnectedAgents;
3472
+
3473
+ interface ConnectedAgentsProps {
3474
+ /** Extra classes for the root element. */
3475
+ className?: string;
3476
+ /** Heading text. Defaults to the translated title; set to null to hide. */
3477
+ title?: string | null;
3478
+ /** Sub-heading under the title. Defaults to the translated description; set to null to hide. */
3479
+ description?: string | null;
3480
+ /** Label for the disconnect button. Defaults to the translated label. */
3481
+ disconnectLabel?: string;
3482
+ /** Text shown when the user has no connected agents. Defaults to the translated label. */
3483
+ emptyLabel?: string;
3484
+ }
3485
+ /**
3486
+ * A ready-made "Connected agents" screen: lists the AI agents the signed-in user
3487
+ * has authorized to access their account, with a per-row Disconnect action.
3488
+ * Session-authed and scoped to the current user — no config beyond having the
3489
+ * app wrapped in <SaaSOSProvider>.
3490
+ *
3491
+ * For a fully custom UI, use the `useConnectedAgents()` hook instead.
3492
+ */
3493
+ declare function ConnectedAgents({ className, title, description, disconnectLabel, emptyLabel, }: ConnectedAgentsProps): react_jsx_runtime.JSX.Element;
3494
+
3228
3495
  interface IProps {
3229
3496
  slug: string;
3230
3497
  children: React.ReactNode;
@@ -3266,7 +3533,7 @@ interface IProps {
3266
3533
  * ```
3267
3534
  */
3268
3535
  declare const WhenWorkspaceFeatureEnabled: {
3269
- (props: IProps): react.ReactNode;
3536
+ (props: IProps): React$1.ReactNode;
3270
3537
  displayName: string;
3271
3538
  };
3272
3539
  /**
@@ -3289,7 +3556,7 @@ declare const WhenWorkspaceFeatureEnabled: {
3289
3556
  * ```
3290
3557
  */
3291
3558
  declare const WhenWorkspaceFeatureDisabled: {
3292
- (props: IProps): react.ReactNode;
3559
+ (props: IProps): React$1.ReactNode;
3293
3560
  displayName: string;
3294
3561
  };
3295
3562
  /**
@@ -3328,7 +3595,7 @@ declare const WhenWorkspaceFeatureDisabled: {
3328
3595
  * ```
3329
3596
  */
3330
3597
  declare const WhenUserFeatureEnabled: {
3331
- (props: IProps): react.ReactNode;
3598
+ (props: IProps): React$1.ReactNode;
3332
3599
  displayName: string;
3333
3600
  };
3334
3601
  /**
@@ -3351,7 +3618,7 @@ declare const WhenUserFeatureEnabled: {
3351
3618
  * ```
3352
3619
  */
3353
3620
  declare const WhenUserFeatureDisabled: {
3354
- (props: IProps): react.ReactNode;
3621
+ (props: IProps): React$1.ReactNode;
3355
3622
  displayName: string;
3356
3623
  };
3357
3624
 
@@ -3392,7 +3659,7 @@ interface IWhenSubscriptionProps {
3392
3659
  * ```
3393
3660
  */
3394
3661
  declare const WhenSubscription: {
3395
- (props: IWhenSubscriptionProps): react.ReactNode;
3662
+ (props: IWhenSubscriptionProps): React$1.ReactNode;
3396
3663
  displayName: string;
3397
3664
  };
3398
3665
  /**
@@ -3424,7 +3691,7 @@ declare const WhenSubscription: {
3424
3691
  * ```
3425
3692
  */
3426
3693
  declare const WhenNoSubscription: {
3427
- (props: IWhenSubscriptionProps): react.ReactNode;
3694
+ (props: IWhenSubscriptionProps): React$1.ReactNode;
3428
3695
  displayName: string;
3429
3696
  };
3430
3697
  interface IWhenSubscriptionToPlansProps {
@@ -3468,7 +3735,7 @@ interface IWhenSubscriptionToPlansProps {
3468
3735
  * ```
3469
3736
  */
3470
3737
  declare const WhenSubscriptionToPlans: {
3471
- (props: IWhenSubscriptionToPlansProps): react.ReactNode;
3738
+ (props: IWhenSubscriptionToPlansProps): React$1.ReactNode;
3472
3739
  displayName: string;
3473
3740
  };
3474
3741
  interface IWhenTrialingProps {
@@ -3491,7 +3758,7 @@ interface IWhenTrialingProps {
3491
3758
  * ```
3492
3759
  */
3493
3760
  declare const WhenTrialing: {
3494
- (props: IWhenTrialingProps): react.ReactNode;
3761
+ (props: IWhenTrialingProps): React$1.ReactNode;
3495
3762
  displayName: string;
3496
3763
  };
3497
3764
  /**
@@ -3507,7 +3774,7 @@ declare const WhenTrialing: {
3507
3774
  * ```
3508
3775
  */
3509
3776
  declare const WhenNotTrialing: {
3510
- (props: IWhenTrialingProps): react.ReactNode;
3777
+ (props: IWhenTrialingProps): React$1.ReactNode;
3511
3778
  displayName: string;
3512
3779
  };
3513
3780
  interface IWhenTrialEndingProps {
@@ -3517,12 +3784,16 @@ interface IWhenTrialEndingProps {
3517
3784
  loadingComponent?: React.ReactNode;
3518
3785
  /** Optional component/element to show when trial is not ending soon. */
3519
3786
  fallbackComponent?: React.ReactNode;
3520
- /** Number of days threshold to consider "ending soon". Defaults to 3. */
3787
+ /**
3788
+ * Number of days threshold to consider "ending soon".
3789
+ * Defaults to `ui.behavior.trialEndingDays` from SaaSOSProvider, or 3.
3790
+ */
3521
3791
  daysThreshold?: number;
3522
3792
  }
3523
3793
  /**
3524
3794
  * Renders children only when the subscription is trialing AND the trial ends within
3525
- * the given threshold (default 3 days). Useful for showing urgent upgrade prompts.
3795
+ * the given threshold (default 3 days, configurable globally via
3796
+ * `ui.behavior.trialEndingDays`). Useful for showing urgent upgrade prompts.
3526
3797
  * Must be used within SubscriptionContextProvider.
3527
3798
  *
3528
3799
  * @example
@@ -3533,7 +3804,7 @@ interface IWhenTrialEndingProps {
3533
3804
  * ```
3534
3805
  */
3535
3806
  declare const WhenTrialEnding: {
3536
- (props: IWhenTrialEndingProps): react.ReactNode;
3807
+ (props: IWhenTrialEndingProps): React$1.ReactNode;
3537
3808
  displayName: string;
3538
3809
  };
3539
3810
 
@@ -3574,7 +3845,7 @@ interface IWhenQuotaThresholdProps extends IWhenQuotaProps {
3574
3845
  * ```
3575
3846
  */
3576
3847
  declare const WhenQuotaAvailable: {
3577
- (props: IWhenQuotaProps): react.ReactNode;
3848
+ (props: IWhenQuotaProps): React$1.ReactNode;
3578
3849
  displayName: string;
3579
3850
  };
3580
3851
  /**
@@ -3600,7 +3871,7 @@ declare const WhenQuotaAvailable: {
3600
3871
  * ```
3601
3872
  */
3602
3873
  declare const WhenQuotaExhausted: {
3603
- (props: IWhenQuotaProps): react.ReactNode;
3874
+ (props: IWhenQuotaProps): React$1.ReactNode;
3604
3875
  displayName: string;
3605
3876
  };
3606
3877
  /**
@@ -3626,7 +3897,7 @@ declare const WhenQuotaExhausted: {
3626
3897
  * ```
3627
3898
  */
3628
3899
  declare const WhenQuotaOverage: {
3629
- (props: IWhenQuotaProps): react.ReactNode;
3900
+ (props: IWhenQuotaProps): React$1.ReactNode;
3630
3901
  displayName: string;
3631
3902
  };
3632
3903
  /**
@@ -3654,7 +3925,7 @@ declare const WhenQuotaOverage: {
3654
3925
  * ```
3655
3926
  */
3656
3927
  declare const WhenQuotaThreshold: {
3657
- (props: IWhenQuotaThresholdProps): react.ReactNode;
3928
+ (props: IWhenQuotaThresholdProps): React$1.ReactNode;
3658
3929
  displayName: string;
3659
3930
  };
3660
3931
 
@@ -3731,7 +4002,7 @@ interface CreditActionsProviderProps {
3731
4002
  * ```
3732
4003
  */
3733
4004
  declare const CreditActionsProvider: {
3734
- ({ children }: CreditActionsProviderProps): react.ReactNode;
4005
+ ({ children }: CreditActionsProviderProps): React$1.ReactNode;
3735
4006
  displayName: string;
3736
4007
  };
3737
4008
 
@@ -3777,7 +4048,7 @@ interface CreditBalanceProps {
3777
4048
  * ```
3778
4049
  */
3779
4050
  declare const CreditBalance: {
3780
- ({ children }: CreditBalanceProps): react.ReactNode;
4051
+ ({ children }: CreditBalanceProps): React$1.ReactNode;
3781
4052
  displayName: string;
3782
4053
  };
3783
4054
 
@@ -3889,7 +4160,7 @@ interface IWhenCreditsLowProps extends IWhenCreditsProps {
3889
4160
  * ```
3890
4161
  */
3891
4162
  declare const WhenCreditsAvailable: {
3892
- (props: IWhenCreditsAvailableProps): react.ReactNode;
4163
+ (props: IWhenCreditsAvailableProps): React$1.ReactNode;
3893
4164
  displayName: string;
3894
4165
  };
3895
4166
  /**
@@ -3914,7 +4185,7 @@ declare const WhenCreditsAvailable: {
3914
4185
  * ```
3915
4186
  */
3916
4187
  declare const WhenCreditsExhausted: {
3917
- (props: IWhenCreditsProps): react.ReactNode;
4188
+ (props: IWhenCreditsProps): React$1.ReactNode;
3918
4189
  displayName: string;
3919
4190
  };
3920
4191
  /**
@@ -3940,7 +4211,7 @@ declare const WhenCreditsExhausted: {
3940
4211
  * ```
3941
4212
  */
3942
4213
  declare const WhenCreditsLow: {
3943
- (props: IWhenCreditsLowProps): react.ReactNode;
4214
+ (props: IWhenCreditsLowProps): React$1.ReactNode;
3944
4215
  displayName: string;
3945
4216
  };
3946
4217
 
@@ -3968,7 +4239,7 @@ interface SubscriptionContextValue {
3968
4239
  * @param props.children - React tree that may use subscription gates or useSubscriptionContext
3969
4240
  * @returns Provider element that supplies subscription context to descendants
3970
4241
  */
3971
- declare const SubscriptionContextProvider: react__default.FC<{
4242
+ declare const SubscriptionContextProvider: React__default.FC<{
3972
4243
  children: ReactNode;
3973
4244
  }>;
3974
4245
  /**
@@ -4003,7 +4274,7 @@ interface QuotaUsageContextValue {
4003
4274
  * @param props.children - React tree that may use quota gates or useQuotaUsageContext
4004
4275
  * @returns Provider element that supplies quota usage context to descendants
4005
4276
  */
4006
- declare const QuotaUsageContextProvider: react__default.FC<{
4277
+ declare const QuotaUsageContextProvider: React__default.FC<{
4007
4278
  children: ReactNode;
4008
4279
  }>;
4009
4280
  /**
@@ -4031,7 +4302,7 @@ interface CreditBalanceContextValue {
4031
4302
  * (e.g. after consume or purchase).
4032
4303
  * Included in SaaSOSProvider by default.
4033
4304
  */
4034
- declare const CreditBalanceContextProvider: react__default.FC<{
4305
+ declare const CreditBalanceContextProvider: React__default.FC<{
4035
4306
  children: ReactNode;
4036
4307
  }>;
4037
4308
  /**
@@ -5292,7 +5563,7 @@ interface BetaFormProps {
5292
5563
  hideLogo?: boolean;
5293
5564
  hideTitles?: boolean;
5294
5565
  }
5295
- declare const BetaForm: react__default.FC<BetaFormProps>;
5566
+ declare const BetaForm: React__default.FC<BetaFormProps>;
5296
5567
 
5297
5568
  interface PricingPageDetails {
5298
5569
  /** Whether plan data is being fetched */
@@ -5364,9 +5635,27 @@ interface PricingPageProps {
5364
5635
  */
5365
5636
  declare function PricingPage({ slug, children, loadingFallback, errorFallback, redirectBaseUrl, }: PricingPageProps): react_jsx_runtime.JSX.Element;
5366
5637
 
5638
+ interface EmptyStateProps {
5639
+ /** Icon shown above the text, e.g. `<KeyRound className="h-5 w-5 text-muted-foreground" />` */
5640
+ icon?: React$1.ReactNode;
5641
+ /** Short headline. Optional — many empty states only need a description. */
5642
+ title?: string;
5643
+ /** Muted explanatory text. */
5644
+ description?: string;
5645
+ /** Optional call-to-action rendered under the text (e.g. a Button). */
5646
+ action?: React$1.ReactNode;
5647
+ className?: string;
5648
+ }
5649
+ /**
5650
+ * Standard empty-list placeholder: dashed border card with a centered icon,
5651
+ * muted text and an optional action. Use for every "nothing here yet" state
5652
+ * so all screens share the same look.
5653
+ */
5654
+ declare function EmptyState({ icon, title, description, action, className }: EmptyStateProps): react_jsx_runtime.JSX.Element;
5655
+
5367
5656
  interface FullScreenLoaderProps {
5368
5657
  /** Content to display centered on screen. Falls back to a default spinner + message. */
5369
- children?: react__default.ReactNode;
5658
+ children?: React__default.ReactNode;
5370
5659
  /** Message shown below the default spinner (only used when no children are provided). Defaults to "Loading..." */
5371
5660
  message?: string;
5372
5661
  /** Background color of the overlay. Defaults to white (dark mode: near-black). */
@@ -5395,6 +5684,84 @@ declare const FullScreenLoader: {
5395
5684
  displayName: string;
5396
5685
  };
5397
5686
 
5687
+ interface LoadingStateProps {
5688
+ /** Text next to the spinner. Defaults to the translated "Loading…". */
5689
+ label?: string;
5690
+ className?: string;
5691
+ }
5692
+ /**
5693
+ * Standard inline loading box: gray bordered bar with a spinner and label.
5694
+ * Use for in-place refreshes where a skeleton would be too heavy;
5695
+ * use `Skeleton`/`SettingSkeleton` for initial screen loads.
5696
+ */
5697
+ declare function LoadingState({ label, className }: LoadingStateProps): react_jsx_runtime.JSX.Element;
5698
+
5699
+ interface SectionHeaderProps {
5700
+ /** Section title. Pass null to hide (e.g. when a parent already renders it). */
5701
+ title?: string | null;
5702
+ /** Muted description under the title. */
5703
+ description?: string | null;
5704
+ /** Optional element aligned to the end of the title row (e.g. a badge or button). */
5705
+ actions?: React$1.ReactNode;
5706
+ className?: string;
5707
+ /** Extra classes for the title, e.g. `text-destructive` for danger sections. */
5708
+ titleClassName?: string;
5709
+ }
5710
+ /**
5711
+ * Standard section heading used across settings screens:
5712
+ * `h3 text-sm font-medium` title + muted `text-sm` description.
5713
+ * Renders nothing when both title and description are empty.
5714
+ */
5715
+ declare function SectionHeader({ title, description, actions, className, titleClassName, }: SectionHeaderProps): react_jsx_runtime.JSX.Element | null;
5716
+
5717
+ interface SidebarNavSectionProps {
5718
+ /** Uppercase group label shown above the items. */
5719
+ title: string;
5720
+ children: React$1.ReactNode;
5721
+ className?: string;
5722
+ }
5723
+ /** Labeled group of sidebar items. */
5724
+ declare function SidebarNavSection({ title, children, className }: SidebarNavSectionProps): react_jsx_runtime.JSX.Element;
5725
+ interface SidebarNavItemProps {
5726
+ /** Leading icon, e.g. `<UserIcon className="h-3.5 w-3.5" />` */
5727
+ icon?: React$1.ReactNode;
5728
+ label: string;
5729
+ /** Highlights the item as the current selection. */
5730
+ active?: boolean;
5731
+ onClick?: () => void;
5732
+ className?: string;
5733
+ }
5734
+ /**
5735
+ * Single sidebar navigation entry with the standard active/hover styling.
5736
+ * Mobile-friendly by default: comfortable ~44px touch target and a trailing
5737
+ * chevron affordance below the `sm` breakpoint; compact rows on desktop.
5738
+ */
5739
+ declare function SidebarNavItem({ icon, label, active, onClick, className }: SidebarNavItemProps): react_jsx_runtime.JSX.Element;
5740
+
5741
+ type StatusBannerVariant = 'error' | 'success' | 'warning' | 'info';
5742
+ interface StatusBannerProps {
5743
+ variant: StatusBannerVariant;
5744
+ /** Bold first line, e.g. "Error loading subscription data". */
5745
+ title?: string;
5746
+ /** Body text under the title (or standalone when there is no title). */
5747
+ message?: string;
5748
+ /** Small hint line under the message, e.g. "Retrying may resolve this." */
5749
+ description?: string;
5750
+ /** Optional leading icon, e.g. `<CheckCircle2 className="h-4 w-4 shrink-0" />`. */
5751
+ icon?: React$1.ReactNode;
5752
+ /** Label for the action button (Retry, Dismiss, …). Button renders only when set. */
5753
+ actionLabel?: string;
5754
+ onAction?: () => void;
5755
+ actionDisabled?: boolean;
5756
+ className?: string;
5757
+ }
5758
+ /**
5759
+ * Standard status banner for error / success / warning / info feedback,
5760
+ * with an optional Retry/Dismiss action. Use for every inline status box
5761
+ * so all screens share the same look.
5762
+ */
5763
+ declare function StatusBanner({ variant, title, message, description, icon, actionLabel, onAction, actionDisabled, className, }: StatusBannerProps): react_jsx_runtime.JSX.Element;
5764
+
5398
5765
  declare function WorkspaceSwitcher(props: {
5399
5766
  trigger: (isLoading: boolean, currentWorkspace: IWorkspace | null) => ReactNode;
5400
5767
  }): react_jsx_runtime.JSX.Element;
@@ -5420,19 +5787,43 @@ interface PushNotificationContextValue extends PushNotificationState {
5420
5787
  unsubscribe: () => Promise<void>;
5421
5788
  }
5422
5789
  interface PushNotificationProviderProps {
5423
- children: react__default.ReactNode;
5790
+ children: React__default.ReactNode;
5424
5791
  /** Path to the service worker file (default: '/push-sw.js') */
5425
5792
  serviceWorkerPath?: string;
5426
5793
  /** Automatically subscribe after permission is granted on login (default: false) */
5427
5794
  autoSubscribe?: boolean;
5428
5795
  }
5429
- declare const PushNotificationProvider: react__default.FC<PushNotificationProviderProps>;
5796
+ declare const PushNotificationProvider: React__default.FC<PushNotificationProviderProps>;
5430
5797
  /**
5431
5798
  * Hook to access push notification state and actions.
5432
5799
  * Must be used within PushNotificationProvider (included in SaaSOSProvider when push config is provided).
5433
5800
  */
5434
5801
  declare function usePushNotifications(): PushNotificationContextValue;
5435
5802
 
5803
+ /**
5804
+ * Single-call visibility decisions combining the implementor's `ui` config
5805
+ * with platform permissions.
5806
+ *
5807
+ * A piece of UI is visible when its config flag is not explicitly `false`
5808
+ * AND the optional permission check passes. Config can only hide UI —
5809
+ * permissions remain the security floor.
5810
+ *
5811
+ * @example
5812
+ * ```tsx
5813
+ * const { visible } = useUIVisibility();
5814
+ *
5815
+ * // Config flag only
5816
+ * visible(ui => ui.settings?.credits?.buyButton)
5817
+ *
5818
+ * // Config flag AND permission — one line decides show/hide
5819
+ * visible(ui => ui.settings?.sections?.users, Permission.WORKSPACE_MEMBERS_VIEW)
5820
+ * ```
5821
+ */
5822
+ declare function useUIVisibility(): {
5823
+ visible: (select: (ui: SDKUIConfig) => boolean | undefined, permission?: string | string[]) => boolean;
5824
+ ui: SDKUIConfig;
5825
+ };
5826
+
5436
5827
  interface SettingsManagerState {
5437
5828
  open: boolean;
5438
5829
  section: WorkspaceSettingsSection;
@@ -5476,5 +5867,5 @@ declare class WorkspaceSettingsManager {
5476
5867
  }
5477
5868
  declare const workspaceSettingsManager: WorkspaceSettingsManager;
5478
5869
 
5479
- export { ApiVersion, AuthApi, AuthStatus, BBAction, BBScreen, BBStatus, BB_PARAM, BaseApi, BetaForm, BillingIntervals, CURRENCY_DISPLAY, CURRENCY_FLAG, CreditActionsProvider, CreditBalance, CreditBalanceContextProvider, CreditBucketSource, CreditBucketStatus, CreditStorePage, CreditTransactionType, DEFAULT_ROLE_PERMISSIONS, DunningState, EventEmitter, FullScreenLoader, InvoiceStatuses, PLAN_CURRENCY_CODES, PLAN_CURRENCY_OPTIONS, PUSH_SERVICE_WORKER_SCRIPT, Permission, PricingPage, PushApi, PushNotificationProvider, QuotaUsageContextProvider, SDKEvent, SETTINGS_SCREENS, SUPPORTED_LOCALES, SaaSOSProvider, SettingsApi, SettingsScreen, SubscriptionContextProvider, SubscriptionItemType, SubscriptionStatus, UserApi, WhenAuthenticated, WhenCreditsAvailable, WhenCreditsExhausted, WhenCreditsLow, WhenNoSubscription, WhenNotTrialing, WhenPermission, WhenQuotaAvailable, WhenQuotaExhausted, WhenQuotaOverage, WhenQuotaThreshold, WhenRoles, WhenSubscription, WhenSubscriptionToPlans, WhenTrialEnding, WhenTrialing, WhenUnauthenticated, WhenUserFeatureDisabled, WhenUserFeatureEnabled, WhenWorkspaceFeatureDisabled, WhenWorkspaceFeatureEnabled, WhenWorkspaceRoles, WorkspaceApi, WorkspaceSwitcher, calculateBillableSeats, calculateSeatOverageCents, calculateTotalSubscriptionCents, cleanBBParams, clearAuthIntent, consumeAuthIntent, createBBUrl, createCheckoutRedirectUrls, createCreditPurchaseRedirectUrls, eventEmitter, formatCents, formatOverageRate, formatOverageRateWithLabel, formatQuotaIncludedOverage, formatQuotaWithPrice, getAvailableCurrenciesFromPlans, getBasePriceCents, getBillingIntervalAndCurrencyFromPriceId, getCurrencyFlag, getCurrencySymbol, getDisplayCurrency, getPerSeatPriceCents, getPricingVariant, getQuotaDisplayValue, getQuotaDisplayWithVariant, getQuotaOverageCents, getQuotaUnitLabelFromName, getSeatPricing, getStripePriceIdForInterval, hasPermission, invalidateCreditBalance, invalidateQuotaUsage, invalidateSubscription, readBBParams, resolveMaxUsers, resolvePermissions, safeRedirect, saveAuthIntent, useAllQuotaUsage, useBillingPortal, useCancelSubscription, useConsumeCredits, useCreateCheckoutSession, useCreditBalance, useCreditBalanceContext, useCreditPackages, useCreditTransactions, useExpiringCredits, useFullScreenLoader, useInvoice, useInvoices, usePermissions, usePlanGroup, usePlanGroupVersions, usePublicCreditPackages, usePublicPlanGroupVersion, usePublicPlans, usePurchaseCredits, usePushNotifications, useQuotaUsageContext, useQuotaUsageStatus, useRecordUsage, useResumeSubscription, useSaaSAuth, useSaaSOs, useSaaSSettings, useSaaSWorkspaces, useSeatStatus, useSubscription, useSubscriptionContext, useSubscriptionManagement, useTranslation, useTrialStatus, useUpdateSubscription, useUsageLogs, useUserAttributes, useUserFeatures, validateInvite, validateRedirectUrl, workspaceSettingsManager };
5480
- export type { BBActionType, BBScreenType, BBStatusType, BetaFormData, BetaFormResponse, BillingInterval, CheckoutResult, CreditActionsDetails, CreditBalanceContextValue, CreditBalanceDetails, CreditBucketSourceType, CreditBucketStatusType, CreditStorePageDetails, CreditTransactionTypeValue, DunningStateType, EventData, EventType, FormatQuotaWithPriceOptions, FullScreenLoaderProps, GetCheckoutStripeParams, IAllQuotaUsageResponse, IBaseApiConfig, IBasePricing, IBetaConfig, ICheckoutSessionRequest, ICheckoutSessionResponse, ICheckoutStripeOptions, IConsumeCreditsRequest, IConsumeCreditsResponse, ICreditBalance, ICreditBucket, ICreditBucketsQuery, ICreditBucketsResponse, ICreditPackage, ICreditPackagePricingVariant, ICreditPurchaseRequest, ICreditPurchaseResponse, ICreditTransaction, ICreditTransactionsQuery, ICreditTransactionsResponse, IEventCallbacks, IExpiringCreditsResponse, IInvoice, IInvoiceListResponse, IInvoiceResponse, IOsConfig, IOsState, IPlan, IPlanGroup, IPlanGroupInfo, IPlanGroupLatestVersion, IPlanGroupResponse, IPlanGroupVersion, IPlanGroupVersionWithPlans, IPlanGroupVersionsResponse, IPlanVersion, IPlanVersionSummary, IPlanVersionWithPlan, IPricingVariant, IPublicCreditPackage, IPublicCreditPackagesResponse, IPublicPlanItem, IPublicPlanItemCategory, IPublicPlanVersion, IPublicPlansResponse, IQuotaByInterval, IQuotaIntervalValue, IQuotaOveragePriceIdsByInterval, IQuotaOveragesByInterval, IQuotaUsageStatus, IQuotaUsageStatusResponse, IRecordUsageRequest, IRecordUsageResponse, IStripePricesByInterval, ISubscription, ISubscriptionItem, ISubscriptionResponse, ISubscriptionUpdateRequest, ISubscriptionUpdateResponse, IUsageLogEntry, IUsageLogsQuery, IUsageLogsResponse, InviteBlockReason, InviteValidation, InvoiceStatus, InvoiceStatusType, LoadingProps, MaxUsersConfig, NotificationData, NotificationEvent, NotificationResult, OnWorkspaceChangeParams, PermissionContext, PermissionKey, PlanVersionWithPricingVariants, PricingPageDetails, PricingPageProps, QuotaDisplayValue, QuotaDisplayWithOverage, QuotaUsageContextValue, RolePermissionMap, SDKLocale, SDKMessages, SaaSOSProviderProps, SeatStatus, SettingsManagerState, SubscriptionContextValue, SubscriptionItemTypeValue, SubscriptionStatusType, TrialStatus, UserCreatedEventData, UserUpdatedEventData, WorkspaceChangedEventData, WorkspaceCreatedEventData, WorkspaceDeletedEventData, WorkspaceSettingsSection, WorkspaceUpdatedEventData, WorkspaceUserAddedEventData, WorkspaceUserRemovedEventData, WorkspaceUserRoleChangedEventData };
5870
+ export { ApiVersion, AuthApi, AuthStatus, BBAction, BBScreen, BBStatus, BB_PARAM, BaseApi, BetaForm, BillingIntervals, CURRENCY_DISPLAY, CURRENCY_FLAG, ConnectedAgents, ConnectedAgentsApi, CreditActionsProvider, CreditBalance, CreditBalanceContextProvider, CreditBucketSource, CreditBucketStatus, CreditStorePage, CreditTransactionType, DEFAULT_ROLE_PERMISSIONS, DunningState, EmptyState, EventEmitter, FullScreenLoader, InvoiceStatuses, LoadingState, PLAN_CURRENCY_CODES, PLAN_CURRENCY_OPTIONS, PUSH_SERVICE_WORKER_SCRIPT, Permission, PricingPage, PushApi, PushNotificationProvider, QuotaUsageContextProvider, SDKEvent, SETTINGS_SCREENS, SUPPORTED_LOCALES, SaaSOSProvider, SectionHeader, SettingsApi, SettingsScreen, SidebarNavItem, SidebarNavSection, StatusBanner, SubscriptionContextProvider, SubscriptionItemType, SubscriptionStatus, UserApi, WhenAuthenticated, WhenCreditsAvailable, WhenCreditsExhausted, WhenCreditsLow, WhenNoSubscription, WhenNotTrialing, WhenPermission, WhenQuotaAvailable, WhenQuotaExhausted, WhenQuotaOverage, WhenQuotaThreshold, WhenRoles, WhenSubscription, WhenSubscriptionToPlans, WhenTrialEnding, WhenTrialing, WhenUnauthenticated, WhenUserFeatureDisabled, WhenUserFeatureEnabled, WhenWorkspaceFeatureDisabled, WhenWorkspaceFeatureEnabled, WhenWorkspaceRoles, WorkspaceApi, WorkspaceSwitcher, calculateBillableSeats, calculateSeatOverageCents, calculateTotalSubscriptionCents, cleanBBParams, clearAuthIntent, consumeAuthIntent, createBBUrl, createCheckoutRedirectUrls, createCreditPurchaseRedirectUrls, eventEmitter, formatCents, formatOverageRate, formatOverageRateWithLabel, formatQuotaIncludedOverage, formatQuotaWithPrice, getAvailableCurrenciesFromPlans, getBasePriceCents, getBillingIntervalAndCurrencyFromPriceId, getCurrencyFlag, getCurrencySymbol, getDisplayCurrency, getPerSeatPriceCents, getPricingVariant, getQuotaDisplayValue, getQuotaDisplayWithVariant, getQuotaOverageCents, getQuotaUnitLabelFromName, getSeatPricing, getStripePriceIdForInterval, hasPermission, invalidateCreditBalance, invalidateQuotaUsage, invalidateSubscription, mergeUIConfig, readBBParams, resolveMaxUsers, resolvePermissions, safeRedirect, saveAuthIntent, useAllQuotaUsage, useBillingPortal, useCancelSubscription, useConnectedAgents, useConnectedAgentsApi, useConsumeCredits, useCreateCheckoutSession, useCreditBalance, useCreditBalanceContext, useCreditPackages, useCreditTransactions, useExpiringCredits, useFullScreenLoader, useInvoice, useInvoices, usePermissions, usePlanGroup, usePlanGroupVersions, usePublicCreditPackages, usePublicPlanGroupVersion, usePublicPlans, usePurchaseCredits, usePushNotifications, useQuotaUsageContext, useQuotaUsageStatus, useRecordUsage, useResumeSubscription, useSaaSAuth, useSaaSOs, useSaaSSettings, useSaaSWorkspaces, useSeatStatus, useSubscription, useSubscriptionContext, useSubscriptionManagement, useTranslation, useTrialStatus, useUIConfig, useUIVisibility, useUpdateSubscription, useUsageLogs, useUserAttributes, useUserFeatures, validateInvite, validateRedirectUrl, workspaceSettingsManager };
5871
+ export type { BBActionType, BBScreenType, BBStatusType, BetaFormData, BetaFormResponse, BillingInterval, CheckoutResult, ConnectedAgentsProps, CreditActionsDetails, CreditBalanceContextValue, CreditBalanceDetails, CreditBucketSourceType, CreditBucketStatusType, CreditStorePageDetails, CreditTransactionTypeValue, DunningStateType, EmptyStateProps, EventData, EventType, FormatQuotaWithPriceOptions, FullScreenLoaderProps, GetCheckoutStripeParams, IAllQuotaUsageResponse, IBaseApiConfig, IBasePricing, IBetaConfig, ICheckoutSessionRequest, ICheckoutSessionResponse, ICheckoutStripeOptions, IConnectedAgent, IConsumeCreditsRequest, IConsumeCreditsResponse, ICreditBalance, ICreditBucket, ICreditBucketsQuery, ICreditBucketsResponse, ICreditPackage, ICreditPackagePricingVariant, ICreditPurchaseRequest, ICreditPurchaseResponse, ICreditTransaction, ICreditTransactionsQuery, ICreditTransactionsResponse, IEventCallbacks, IExpiringCreditsResponse, IInvoice, IInvoiceListResponse, IInvoiceResponse, IOsConfig, IOsState, IPlan, IPlanGroup, IPlanGroupInfo, IPlanGroupLatestVersion, IPlanGroupResponse, IPlanGroupVersion, IPlanGroupVersionWithPlans, IPlanGroupVersionsResponse, IPlanVersion, IPlanVersionSummary, IPlanVersionWithPlan, IPricingVariant, IPublicCreditPackage, IPublicCreditPackagesResponse, IPublicPlanItem, IPublicPlanItemCategory, IPublicPlanVersion, IPublicPlansResponse, IQuotaByInterval, IQuotaIntervalValue, IQuotaOveragePriceIdsByInterval, IQuotaOveragesByInterval, IQuotaUsageStatus, IQuotaUsageStatusResponse, IRecordUsageRequest, IRecordUsageResponse, ISettings, IStripePricesByInterval, ISubscription, ISubscriptionItem, ISubscriptionResponse, ISubscriptionUpdateRequest, ISubscriptionUpdateResponse, IUsageLogEntry, IUsageLogsQuery, IUsageLogsResponse, IUser, IWorkspace, InviteBlockReason, InviteValidation, InvoiceStatus, InvoiceStatusType, LoadingProps, LoadingStateProps, MaxUsersConfig, NotificationData, NotificationEvent, NotificationResult, OnWorkspaceChangeParams, PartialSDKMessages, PermissionContext, PermissionKey, PlanVersionWithPricingVariants, PricingPageDetails, PricingPageProps, QuotaDisplayValue, QuotaDisplayWithOverage, QuotaUsageContextValue, RolePermissionMap, SDKLocale, SDKMessages, SDKUIConfig, SaaSOSProviderProps, SeatStatus, SectionHeaderProps, SettingsManagerState, SidebarNavItemProps, SidebarNavSectionProps, StatusBannerProps, StatusBannerVariant, SubscriptionContextValue, SubscriptionItemTypeValue, SubscriptionStatusType, TranslationKey, TrialStatus, UseConnectedAgents, UserCreatedEventData, UserUpdatedEventData, WorkspaceChangedEventData, WorkspaceCreatedEventData, WorkspaceDeletedEventData, WorkspaceSettingsSection, WorkspaceUpdatedEventData, WorkspaceUserAddedEventData, WorkspaceUserRemovedEventData, WorkspaceUserRoleChangedEventData };