@streamoid/settings 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -44,6 +44,9 @@ type SettingsTab = "profile"
44
44
  | "workspaceMembers"
45
45
  /** Account › My workspaces — the memberships and switch/create list. */
46
46
  | "workspaceList"
47
+ /** Organization › My organizations — every org the viewer belongs to:
48
+ * open one, manage the ones they admin, create another. */
49
+ | "organizationList"
47
50
  /** Organization › People. */
48
51
  | "organization"
49
52
  /** Organization › Workspaces. */
@@ -207,6 +210,11 @@ interface SettingsWorkspaceAdapter {
207
210
  create: (input: {
208
211
  name: string;
209
212
  imageFile?: File | null;
213
+ /** The organization to create it in (the viewer must be its admin). */
214
+ organizationId?: string;
215
+ /** "shared": org members can join it from the workspace picker;
216
+ * "private": invite-only. */
217
+ orgVisibility?: "private" | "shared";
210
218
  imageUrl?: string | null;
211
219
  }) => Promise<{
212
220
  id: string;
@@ -300,10 +308,36 @@ interface SettingsOrganizationListItem {
300
308
  name: string;
301
309
  imageUrl?: string;
302
310
  role?: SettingsOrganizationRole;
311
+ /** The organization the viewer is in right now. */
312
+ isCurrent?: boolean;
313
+ /** Its email domain; absent for an organization with none. */
314
+ domain?: string | null;
315
+ type?: SettingsOrganizationType;
316
+ }
317
+ /** "shared": offered to new users from the company domain at signup.
318
+ * "private": invite-only. */
319
+ type SettingsOrganizationType = "shared" | "private";
320
+ /** Whether the viewer may create an organization, and on which domains
321
+ * (GET /organization/create-options). */
322
+ interface SettingsOrganizationCreateOptions {
323
+ canCreate: boolean;
324
+ /** The Streamoid team: any domain. */
325
+ anyDomain: boolean;
326
+ /** The viewer's company; null for a public email address, whose
327
+ * organizations have no domain. */
328
+ rootDomain: string | null;
329
+ /** Prefill for the domain field. */
330
+ defaultDomain: string | null;
303
331
  }
304
332
  interface SettingsOrganizationCurrent {
305
333
  id: string;
306
334
  name?: string;
335
+ /** Absent on organizations created before types existed: treat as shared. */
336
+ type?: SettingsOrganizationType;
337
+ /** The company the organization belongs to ("abfrl.com" for an org on
338
+ * ownd.abfrl.com). Members from the same company join as members; anyone
339
+ * else is a guest. Absent for organizations with no domain. */
340
+ rootDomain?: string | null;
307
341
  imageUrl?: string;
308
342
  role?: SettingsOrganizationRole | string;
309
343
  /**
@@ -416,18 +450,32 @@ interface SettingsOrganizationAdapter {
416
450
  managementUrl?: string;
417
451
  current: SettingsOrganizationCurrent | null;
418
452
  list: () => Promise<SettingsOrganizationListItem[]>;
419
- /** @deprecated Organizations are created at sign-in from the email domain,
420
- * or from the company name given in onboarding. Never called. */
453
+ /** Optional: create an organization (POST /organization). The caller
454
+ * becomes its admin, and it comes with a default shared workspace. The
455
+ * backend decides which domains the caller may use. */
421
456
  create?: (input: {
422
457
  name: string;
423
458
  imageFile?: File | null;
459
+ /** Defaults to the caller's own email domain. */
460
+ domain?: string;
461
+ type?: SettingsOrganizationType;
424
462
  }) => Promise<{
425
463
  id: string;
426
464
  } | void>;
465
+ /** Optional: who sees "Create organization" in Organization settings —
466
+ * company admins, public email users and the Streamoid team. Without it, or
467
+ * without `create`, the button never shows. */
468
+ getCreateOptions?: () => Promise<SettingsOrganizationCreateOptions>;
427
469
  update: (id: string, patch: {
428
470
  name?: string;
429
471
  imageFile?: File | null;
430
472
  imageUrl?: string | null;
473
+ /** Shared orgs are offered to new users from the company at signup;
474
+ * private ones are invite-only. Any org admin may change it. */
475
+ type?: SettingsOrganizationType;
476
+ /** Only an admin whose own email is on the org's company may change it,
477
+ * and only to a domain of the same company. */
478
+ domain?: string;
431
479
  }) => Promise<void>;
432
480
  switch: (id: string) => Promise<void>;
433
481
  delete: (id: string) => Promise<void>;
@@ -460,7 +508,8 @@ interface SettingsOrganizationAdapter {
460
508
  }) => Promise<void>;
461
509
  updateMemberRole: (input: {
462
510
  userId: string;
463
- role: "admin" | "member";
511
+ /** Any direction, guest included. */
512
+ role: "admin" | "member" | "guest";
464
513
  /** @deprecated Organization invites no longer exist. */
465
514
  inviteAccess?: boolean;
466
515
  }) => Promise<void>;
@@ -876,7 +925,11 @@ interface SettingsApiAdapter {
876
925
  invitationId?: string;
877
926
  }) => Promise<void>;
878
927
  resendInvite: (invitationId: string) => Promise<void>;
879
- /** CXO-only: promote one or more members to admin in a single call. */
928
+ /**
929
+ * @deprecated No longer called: `updateMemberRole` makes a member an admin by
930
+ * itself, and promoting first made that request fail. Kept so existing
931
+ * adapters still type-check.
932
+ */
880
933
  promoteAsAdmin?: (userIds: string[]) => Promise<void>;
881
934
  /** CXO-only: fetch granular per-user details (services, scopes, etc.). */
882
935
  getUserDetail?: (userId: string) => Promise<WorkspaceMember | null>;
@@ -1199,7 +1252,9 @@ interface WorkspaceModalProps {
1199
1252
  mode: "create" | "update";
1200
1253
  workspace?: WorkspaceData | null;
1201
1254
  onClose: () => void;
1202
- onCreate?: (name: string, imageFile: File | null) => void | boolean | Promise<void | boolean>;
1255
+ onCreate?: (name: string, imageFile: File | null, details?: {
1256
+ orgVisibility: "private" | "shared";
1257
+ }) => void | boolean | Promise<void | boolean>;
1203
1258
  onUpdate?: (name: string, imageFile: File | null, imageRemoved: boolean) => void | boolean | Promise<void | boolean>;
1204
1259
  onLeave?: () => void | boolean | Promise<void | boolean>;
1205
1260
  onDelete?: () => void | boolean | Promise<void | boolean>;
@@ -1241,10 +1296,31 @@ declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlan
1241
1296
  onShowPerUserLimitsChange?: (open: boolean) => void;
1242
1297
  }): react__default.JSX.Element;
1243
1298
 
1244
- declare function TeamsContent({ embedded, onInviteOpen, onInviteOpenChange, workspaceName, workspaceImageUrl, organizationName, hiddenApps, }?: {
1299
+ /**
1300
+ * The one `updateMemberRole` request that saving a member sends, or `null`
1301
+ * when there is nothing to save.
1302
+ *
1303
+ * `change-user-role` makes a member an admin by itself (role, flags, and
1304
+ * dropping their app and store grants), so nothing is sent before it. Calling
1305
+ * `promoteAsAdmin` first made the user admin and then had this request refused
1306
+ * with 403 "Already present as admin.".
1307
+ *
1308
+ * An admin kept as admin has no other field to change (the modal hides the
1309
+ * permissions for an admin), so that save sends nothing.
1310
+ */
1311
+ declare function memberRoleUpdate(current: {
1312
+ userId: string;
1313
+ role: UserPermissions["role"];
1314
+ }, permissions: UserPermissions, services: ServiceItem[]): ({
1315
+ userId: string;
1316
+ } & MemberPermissionsPayload) | null;
1317
+ declare function TeamsContent({ embedded, onInviteOpen, onInviteOpenChange, onCanInviteChange, workspaceName, workspaceImageUrl, organizationName, hiddenApps, }?: {
1245
1318
  embedded?: boolean;
1246
1319
  onInviteOpen?: boolean;
1247
1320
  onInviteOpenChange?: (open: boolean) => void;
1321
+ /** Told whether the viewer may invite here, so a host-drawn Invite button
1322
+ * can follow the same rule as this screen's own. */
1323
+ onCanInviteChange?: (canInvite: boolean) => void;
1248
1324
  /**
1249
1325
  * The workspace these members belong to. Supplied by the settings shell so
1250
1326
  * the page can name its own subject — without it this screen was a list of
@@ -1451,17 +1527,37 @@ interface OrganizationData {
1451
1527
  isCurrent: boolean;
1452
1528
  imageUrl?: string;
1453
1529
  imageName?: string;
1530
+ /** "shared": offered to new users from the company at signup;
1531
+ * "private": invite-only. */
1532
+ type?: "shared" | "private";
1533
+ /** The organization's email domain; null when it has none. */
1534
+ domain?: string | null;
1535
+ }
1536
+ /** Type and domain, passed to onCreate / onUpdate after the name and image. */
1537
+ interface OrganizationDetails {
1538
+ type?: "shared" | "private";
1539
+ /** Only set when it was changed (update) or filled in (create). */
1540
+ domain?: string;
1454
1541
  }
1455
1542
  interface OrganizationModalProps {
1456
1543
  open: boolean;
1457
1544
  mode: "create" | "update";
1458
1545
  organization?: OrganizationData | null;
1546
+ /** Create mode: whether the new organization can have a domain at all
1547
+ * (false for a public email user's org). Defaults to true. */
1548
+ allowDomain?: boolean;
1549
+ /** Create mode: the domain field's prefill. */
1550
+ defaultDomain?: string | null;
1551
+ /** Update mode: trust `organization.role` for the delete button instead of
1552
+ * asking `getHighestRole`, which answers for the *current* organization —
1553
+ * wrong when managing another one from My organizations. */
1554
+ trustRole?: boolean;
1459
1555
  onClose: () => void;
1460
- onCreate?: (name: string, imageFile: File | null) => void | boolean | Promise<void | boolean>;
1461
- onUpdate?: (name: string, imageFile: File | null, imageRemoved: boolean) => void | boolean | Promise<void | boolean>;
1556
+ onCreate?: (name: string, imageFile: File | null, details: OrganizationDetails) => void | boolean | Promise<void | boolean>;
1557
+ onUpdate?: (name: string, imageFile: File | null, imageRemoved: boolean, details: OrganizationDetails) => void | boolean | Promise<void | boolean>;
1462
1558
  onDelete?: () => void | boolean | Promise<void | boolean>;
1463
1559
  }
1464
- declare function OrganizationModal({ open, mode, organization, onClose, onCreate, onUpdate, onDelete, }: OrganizationModalProps): react.JSX.Element | null;
1560
+ declare function OrganizationModal({ open, mode, organization, allowDomain, defaultDomain, trustRole, onClose, onCreate, onUpdate, onDelete, }: OrganizationModalProps): react.JSX.Element | null;
1465
1561
 
1466
1562
  interface WorkspacePickerItem {
1467
1563
  _id: string;
@@ -1470,41 +1566,87 @@ interface WorkspacePickerItem {
1470
1566
  /** Who created it, shown under the name. */
1471
1567
  ownerName?: string;
1472
1568
  }
1569
+ /** One organization's section of a multi-organization picker. */
1570
+ interface WorkspacePickerGroup {
1571
+ organizationId: string;
1572
+ organizationName: string;
1573
+ imageUrl?: string;
1574
+ workspaces: WorkspacePickerItem[];
1575
+ /** The viewer may create workspaces in it (an org admin). */
1576
+ canCreate?: boolean;
1577
+ }
1473
1578
  interface WorkspacePickerProps {
1474
1579
  organizationName?: string;
1475
- workspaces: WorkspacePickerItem[];
1580
+ workspaces?: WorkspacePickerItem[];
1581
+ /** Several organizations at once, one collapsible section each. Takes the
1582
+ * place of `organizationName` / `workspaces`. */
1583
+ groups?: WorkspacePickerGroup[];
1476
1584
  /** While the list is still loading. */
1477
1585
  loading?: boolean;
1478
1586
  /** Join the ticked workspaces as a member. Throw to keep the picker open. */
1479
1587
  onJoin: (workspaceIds: string[]) => Promise<void>;
1480
- /** Create a workspace (the user becomes its admin). Throw to keep it open. */
1481
- onCreate: (name: string) => Promise<void>;
1588
+ /** Create a workspace (the user becomes its admin), shared (org members
1589
+ * can join it) or private (invite-only), in `organizationId` when the
1590
+ * picker lists groups. Throw to keep it open.
1591
+ * Omit it for anyone who may not create workspaces in the organization
1592
+ * (only org admins may); the picker then offers joining only. */
1593
+ onCreate?: (name: string, visibility: "private" | "shared", organizationId?: string) => Promise<void>;
1594
+ }
1595
+ declare function WorkspacePicker({ organizationName, workspaces, groups, loading, onJoin, onCreate, }: WorkspacePickerProps): react.JSX.Element;
1596
+
1597
+ interface OrganizationPickerItem {
1598
+ _id: string;
1599
+ name: string;
1600
+ domain?: string;
1601
+ imageUrl?: string;
1482
1602
  }
1483
- declare function WorkspacePicker({ organizationName, workspaces, loading, onJoin, onCreate, }: WorkspacePickerProps): react.JSX.Element;
1603
+ type OrganizationPickerType = "shared" | "private";
1604
+ interface OrganizationPickerProps {
1605
+ /** The company's shared organizations, exact-domain ones first. */
1606
+ organizations: OrganizationPickerItem[];
1607
+ /** The user's company ("abfrl.com"); absent for a public email domain. */
1608
+ companyDomain?: string | null;
1609
+ /** Signed in with a public email address (gmail.com and the like). */
1610
+ publicDomain?: boolean;
1611
+ /** Prefill for the new organization's name. */
1612
+ suggestedName?: string;
1613
+ loading?: boolean;
1614
+ /** Join the ticked organizations as a member. Throw to keep the picker open. */
1615
+ onJoin: (organizationIds: string[]) => Promise<void>;
1616
+ /** Create an organization (the user becomes its admin). Throw to keep it open. */
1617
+ onCreate: (input: {
1618
+ name: string;
1619
+ type: OrganizationPickerType;
1620
+ }) => Promise<void>;
1621
+ }
1622
+ declare function OrganizationPicker({ organizations, companyDomain, publicDomain, suggestedName, loading, onJoin, onCreate, }: OrganizationPickerProps): react.JSX.Element;
1484
1623
 
1624
+ type OrganizationMemberRole = "admin" | "member" | "guest";
1485
1625
  interface OrganizationMemberModalProps {
1486
1626
  open: boolean;
1487
1627
  /** The target member's email (read-only display). */
1488
1628
  userEmail?: string;
1489
- /** admin/member only — the toggle below cannot express any other role, so
1490
- * pass `lockRole` for a target whose role is outside that pair. */
1491
- initialRole?: "admin" | "member";
1629
+ initialRole?: OrganizationMemberRole;
1492
1630
  /**
1493
- * Show the target's role read-only and disable Save, leaving Remove as the
1494
- * only action. For an organization guest: the toggle offers Admin and Member
1495
- * and nothing else, and a guest can't be made either.
1631
+ * The target's email is not on the organization's company domain. Making
1632
+ * them an org admin then asks for confirmation first.
1496
1633
  */
1634
+ outsideDomain?: boolean;
1635
+ /** The organization's company domain, named in that confirmation. */
1636
+ organizationDomain?: string | null;
1637
+ /** Show the target's role read-only and disable Save, leaving Remove as the
1638
+ * only action. */
1497
1639
  lockRole?: boolean;
1498
1640
  /** Label for the read-only role shown when `lockRole` is set. */
1499
1641
  lockedRoleLabel?: string;
1500
1642
  canRemove?: boolean;
1501
1643
  onClose: () => void;
1502
1644
  onUpdate?: (input: {
1503
- role: "admin" | "member";
1645
+ role: OrganizationMemberRole;
1504
1646
  }) => void;
1505
1647
  onRemove?: () => void;
1506
1648
  }
1507
- declare function OrganizationMemberModal({ open, userEmail, initialRole, lockRole, lockedRoleLabel, canRemove, onClose, onUpdate, onRemove, }: OrganizationMemberModalProps): react.JSX.Element | null;
1649
+ declare function OrganizationMemberModal({ open, userEmail, initialRole, outsideDomain, organizationDomain, lockRole, lockedRoleLabel, canRemove, onClose, onUpdate, onRemove, }: OrganizationMemberModalProps): react.JSX.Element | null;
1508
1650
 
1509
1651
  interface ConfirmLeaveModalProps {
1510
1652
  open: boolean;
@@ -1541,8 +1683,8 @@ interface StoreOption {
1541
1683
  }
1542
1684
  /**
1543
1685
  * Standing in the workspace's parent organization, as distinct from `role`,
1544
- * which is the role inside the workspace itself. A colleague can hold either
1545
- * workspace role; a guest can only ever be a workspace member.
1686
+ * which is the role inside the workspace itself. Either can hold either
1687
+ * workspace role.
1546
1688
  */
1547
1689
  type OrganizationStanding = "colleague" | "guest";
1548
1690
  interface InviteUpdateModalProps {
@@ -1610,15 +1752,20 @@ interface InviteUpdateModalProps {
1610
1752
  /** Defaults to "guest" — the least-privileged of the two. */
1611
1753
  initialOrganizationStanding?: OrganizationStanding;
1612
1754
  /**
1613
- * The email domain of the workspace's organization, when it has one. An
1614
- * invitee outside it joins as a guest (unless invited as a Colleague), and
1615
- * a guest can only be a workspace member — so Admin is locked off for them.
1755
+ * @deprecated No longer read. A guest may be invited as a workspace admin,
1756
+ * so the organization's domain no longer locks Admin off.
1616
1757
  */
1617
1758
  organizationDomain?: string | null;
1759
+ /**
1760
+ * Invite mode: whether the inviter may invite an admin. Only workspace
1761
+ * admins (org admins included) can; a member with invite access invites
1762
+ * members only. Defaults to true.
1763
+ */
1764
+ allowAdminRole?: boolean;
1618
1765
  /** Called only in invite mode; receives (permissions, email, standing) */
1619
1766
  onInvite?: (permissions: UserPermissions, email: string, organizationStanding?: OrganizationStanding) => void;
1620
1767
  }
1621
- declare function InviteUpdateModal({ open, mode, userEmail, stores, hiddenApps, allowSubmitWithoutChanges, initialPermissions, onClose, onSave, onRemove, canRemove, showOrganizationStanding, organizationName, allowGuestStanding, initialOrganizationStanding, organizationDomain, onInvite, }: InviteUpdateModalProps): react.JSX.Element | null;
1768
+ declare function InviteUpdateModal({ open, mode, userEmail, stores, hiddenApps, allowSubmitWithoutChanges, initialPermissions, onClose, onSave, onRemove, canRemove, showOrganizationStanding, organizationName, allowGuestStanding, initialOrganizationStanding, organizationDomain: _organizationDomain, allowAdminRole, onInvite, }: InviteUpdateModalProps): react.JSX.Element | null;
1622
1769
 
1623
1770
  interface ExportDateModalProps {
1624
1771
  title: string;
@@ -1757,4 +1904,4 @@ declare function SettingsAdaptersProvider({ adapters, children, }: {
1757
1904
  */
1758
1905
  declare function useSettingsAdapters(): SettingsAdapters;
1759
1906
 
1760
- export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type ConnectedApp, ConnectedAppsContent, type CreatedToken, type CreditCycleUnit, type CreditLimitValidation, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, type MemberCreditLimit, MemberCreditLimitModal, type MemberCreditLimitRow, type MemberCreditLimitSource, type MemberCreditLimitsResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, OrganizationIntegrationsContent, type OrganizationInvite, type OrganizationJoinRequest, type OrganizationJoinableWorkspace, type OrganizationMember, OrganizationMemberModal, type OrganizationMemberModalProps, OrganizationModal, type OrganizationView, type OrganizationWorkspaceItem, PerUserLimitsView, type Price, type PriceMetadata, type ProductsResponse, ProfileAvatar, ProfileTab, ReferralTab, SCOPE_LABELS, ScopeHeader, type ScopeHeaderProps, type ServiceItem, type SettingsAdapters, SettingsAdaptersProvider, type SettingsApiAdapter, type SettingsAuthAdapter, type SettingsAuthUser, SettingsContent, type SettingsContentProps, type SettingsImageUploadAdapter, type SettingsIntegrationsAdapter, type SettingsNavigationAdapter, type SettingsOrganizationAdapter, type SettingsOrganizationCurrent, type SettingsOrganizationListItem, type SettingsScope, type SettingsTab, type SettingsToastAdapter, SettingsTooltip, type SettingsTooltipPlacement, type SettingsTooltipProps, type SettingsWorkspaceAdapter, type SettingsWorkspaceCurrent, type SettingsWorkspaceListItem, SiconKey, type StoreItem, type SubscriptionPlan, type SubscriptionResponse, TAB_DESCRIPTIONS, TAB_LABELS, TAB_SCOPE, TAB_TO_URL, type TeamMember, TeamsContent, type TokenExpiry, TokensContent, URL_TO_TAB, USER_LANGUAGES, type UpdateSubscriptionPayload, type UpdateSubscriptionResponse, type UsageHistoryItem, type UsageHistoryResponse, type UserLanguage, type UserPermissions, WORKSPACE_LIST_PAGE_SIZE, type WorkspaceData, WorkspaceGeneralTab, type WorkspaceGeneralTabProps, type WorkspaceInvite, type WorkspaceListOrganization, WorkspaceListTab, type WorkspaceMember, WorkspaceModal, type WorkspaceOrganization, type WorkspaceOrganizationRequest, WorkspacePicker, type WorkspacePickerItem, type WorkspacePickerProps, WorkspaceTab, type WorkspaceUsageResponse, belowUsageReason, cleanCreditLimitInput, countLabel, creditCycleUnit, describeDefaultLimit, describeMemberLimit, formatCreditLimit, formatCredits, groupWorkspaceList, isLimitBelowUsage, joinMembersWithLimits, lastUsedLabel, limitBelowUsageUsed, limitSourceLabel, loadWorkspaceOrganization, minimumCreditLimit, resolveSettingsTabFromPath, roundCredits, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel, validateCreditLimitInput, validateDefaultCreditLimitInput };
1907
+ export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type ConnectedApp, ConnectedAppsContent, type CreatedToken, type CreditCycleUnit, type CreditLimitValidation, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, type MemberCreditLimit, MemberCreditLimitModal, type MemberCreditLimitRow, type MemberCreditLimitSource, type MemberCreditLimitsResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, type OrganizationDetails, OrganizationIntegrationsContent, type OrganizationInvite, type OrganizationJoinRequest, type OrganizationJoinableWorkspace, type OrganizationMember, OrganizationMemberModal, type OrganizationMemberModalProps, type OrganizationMemberRole, OrganizationModal, OrganizationPicker, type OrganizationPickerItem, type OrganizationPickerProps, type OrganizationPickerType, type OrganizationView, type OrganizationWorkspaceItem, PerUserLimitsView, type Price, type PriceMetadata, type ProductsResponse, ProfileAvatar, ProfileTab, ReferralTab, SCOPE_LABELS, ScopeHeader, type ScopeHeaderProps, type ServiceItem, type SettingsAdapters, SettingsAdaptersProvider, type SettingsApiAdapter, type SettingsAuthAdapter, type SettingsAuthUser, SettingsContent, type SettingsContentProps, type SettingsImageUploadAdapter, type SettingsIntegrationsAdapter, type SettingsNavigationAdapter, type SettingsOrganizationAdapter, type SettingsOrganizationCreateOptions, type SettingsOrganizationCurrent, type SettingsOrganizationListItem, type SettingsOrganizationType, type SettingsScope, type SettingsTab, type SettingsToastAdapter, SettingsTooltip, type SettingsTooltipPlacement, type SettingsTooltipProps, type SettingsWorkspaceAdapter, type SettingsWorkspaceCurrent, type SettingsWorkspaceListItem, SiconKey, type StoreItem, type SubscriptionPlan, type SubscriptionResponse, TAB_DESCRIPTIONS, TAB_LABELS, TAB_SCOPE, TAB_TO_URL, type TeamMember, TeamsContent, type TokenExpiry, TokensContent, URL_TO_TAB, USER_LANGUAGES, type UpdateSubscriptionPayload, type UpdateSubscriptionResponse, type UsageHistoryItem, type UsageHistoryResponse, type UserLanguage, type UserPermissions, WORKSPACE_LIST_PAGE_SIZE, type WorkspaceData, WorkspaceGeneralTab, type WorkspaceGeneralTabProps, type WorkspaceInvite, type WorkspaceListOrganization, WorkspaceListTab, type WorkspaceMember, WorkspaceModal, type WorkspaceOrganization, type WorkspaceOrganizationRequest, WorkspacePicker, type WorkspacePickerGroup, type WorkspacePickerItem, type WorkspacePickerProps, WorkspaceTab, type WorkspaceUsageResponse, belowUsageReason, cleanCreditLimitInput, countLabel, creditCycleUnit, describeDefaultLimit, describeMemberLimit, formatCreditLimit, formatCredits, groupWorkspaceList, isLimitBelowUsage, joinMembersWithLimits, lastUsedLabel, limitBelowUsageUsed, limitSourceLabel, loadWorkspaceOrganization, memberRoleUpdate, minimumCreditLimit, resolveSettingsTabFromPath, roundCredits, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel, validateCreditLimitInput, validateDefaultCreditLimitInput };