@streamoid/settings 0.9.1 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -411,6 +411,13 @@ interface OrganizationWorkspaceItem {
411
411
  /** "inactive" workspaces are listed to org admins but can't be joined. */
412
412
  status?: string;
413
413
  }
414
+ /** A shared organization of the viewer's company that they aren't in yet. */
415
+ interface SettingsOrganizationJoinableItem {
416
+ _id: string;
417
+ name: string;
418
+ imageUrl?: string;
419
+ domain?: string | null;
420
+ }
414
421
  /** A shared workspace in the organization that the viewer isn't in yet. */
415
422
  interface OrganizationJoinableWorkspace {
416
423
  _id: string;
@@ -466,6 +473,13 @@ interface SettingsOrganizationAdapter {
466
473
  * company admins, public email users and the Streamoid team. Without it, or
467
474
  * without `create`, the button never shows. */
468
475
  getCreateOptions?: () => Promise<SettingsOrganizationCreateOptions>;
476
+ /** Optional: the viewer's company's shared organizations they are not in
477
+ * yet — the same ones a new user is offered at sign-up. Listed under
478
+ * "Other organizations" with a Join button (with `join`). */
479
+ listJoinable?: () => Promise<SettingsOrganizationJoinableItem[]>;
480
+ /** Optional: join one of `listJoinable` as a member. No workspace comes
481
+ * with it; they open the org and pick or create one. */
482
+ join?: (id: string) => Promise<void>;
469
483
  update: (id: string, patch: {
470
484
  name?: string;
471
485
  imageFile?: File | null;
@@ -832,6 +846,102 @@ interface MemberCreditLimitsResponse {
832
846
  /** Only members with an override or with usage; the rest follow the default. */
833
847
  users: MemberCreditLimit[];
834
848
  }
849
+ type CreditAllocationMode = "fixed" | "percent";
850
+ type CreditAllocationStatus = "active" | "canceled";
851
+ /**
852
+ * A workspace sending part of its credits to another workspace of its
853
+ * organization: once when created, and again out of every renewal grant while
854
+ * `recurring`. Workspace ids are the host's workspace ids (`*WorkspaceKey`).
855
+ */
856
+ interface CreditAllocation {
857
+ _id: string;
858
+ /** The sponsor (source) workspace. */
859
+ sourceWorkspaceKey: string;
860
+ sourceWorkspaceName?: string | null;
861
+ /** The receiving (target) workspace. */
862
+ targetWorkspaceKey: string;
863
+ targetWorkspaceName?: string | null;
864
+ mode: CreditAllocationMode;
865
+ /** Credits for `fixed`; a share of each grant, (0–100], for `percent`. */
866
+ value: number;
867
+ recurring: boolean;
868
+ status: CreditAllocationStatus;
869
+ /** This allocation moved the target off the free plan, so cancelling moves it back. */
870
+ targetPlanChanged?: boolean;
871
+ /**
872
+ * The first move, from the source's balance, when the allocation was made.
873
+ * `failed` means the allocation is active (renewals still split) but those
874
+ * first credits did NOT move.
875
+ */
876
+ initialTransfer?: {
877
+ status: "done" | "failed";
878
+ credits: number;
879
+ error?: string;
880
+ };
881
+ note?: string;
882
+ requestedBy?: string;
883
+ createdBy?: string;
884
+ createdAt?: string;
885
+ updatedAt?: string;
886
+ canceledAt?: string;
887
+ canceledBy?: string;
888
+ cancelReason?: string;
889
+ }
890
+ interface CreditAllocationsResponse {
891
+ /** Allocations this workspace sponsors, canceled ones included, newest first. */
892
+ giving: CreditAllocation[];
893
+ /** Allocations sponsoring this workspace (at most one active). */
894
+ receiving: CreditAllocation[];
895
+ /** The viewer may create, change and cancel (an admin of the organization). */
896
+ canManage: boolean;
897
+ }
898
+ interface CreateCreditAllocationInput {
899
+ targetWorkspaceId: string;
900
+ mode: CreditAllocationMode;
901
+ value: number;
902
+ recurring: boolean;
903
+ /** Why — required, at most 500 characters. */
904
+ note: string;
905
+ }
906
+ type UpdateCreditAllocationInput = {
907
+ mode: CreditAllocationMode;
908
+ value: number;
909
+ recurring?: boolean;
910
+ } | {
911
+ recurring: boolean;
912
+ };
913
+ interface CancelCreditAllocationResult {
914
+ allocation: CreditAllocation;
915
+ /** The target was moved back to the free plan. */
916
+ targetMovedToFree: boolean;
917
+ /** Why billing left the target on its plan on purpose (bought its own, already on free). */
918
+ reason?: string;
919
+ /** Set when moving the target back to free failed; the allocation is canceled anyway. */
920
+ error?: string;
921
+ }
922
+ interface CreditTransfer {
923
+ id: string;
924
+ direction: "sent" | "received";
925
+ credits: number;
926
+ createdAt: string | null;
927
+ expiresAt?: string | null;
928
+ allocationId: string | null;
929
+ kind: "initial" | "renewal";
930
+ counterpartWorkspaceId: string | null;
931
+ counterpartWorkspaceName: string | null;
932
+ }
933
+ interface CreditTransfersPage {
934
+ transfers: CreditTransfer[];
935
+ page: number;
936
+ limit: number;
937
+ total: number;
938
+ }
939
+ /** A workspace credits can be allocated to (another workspace of the organization). */
940
+ interface CreditAllocationTarget {
941
+ id: string;
942
+ name: string;
943
+ imageUrl?: string;
944
+ }
835
945
  /**
836
946
  * The API adapter is split into three concern areas (billing / teams /
837
947
  * tokens) but kept flat to match the original spec. Methods are grouped with
@@ -967,6 +1077,27 @@ interface SettingsApiAdapter {
967
1077
  /** Set the workspace default per-member limit; `null` means Unlimited.
968
1078
  * Applies to members without their own override. Throws on error. */
969
1079
  setDefaultCreditLimit?: (limit: number | null) => Promise<void>;
1080
+ /**
1081
+ * What this workspace gives to and receives from other workspaces of its
1082
+ * organization. When omitted, Billing hides the "Credit allocations" entry.
1083
+ */
1084
+ fetchCreditAllocations?: () => Promise<CreditAllocationsResponse>;
1085
+ /** Organization admins only. Moves the first share now. Rejects with the
1086
+ * billing `code` (`INSUFFICIENT_CREDITS`, `ALLOCATION_NOT_ALLOWED`,
1087
+ * `SOURCE_ON_FREE_PLAN`, `TARGET_PLAN_CHANGE_FAILED`) on the error body. */
1088
+ createCreditAllocation?: (input: CreateCreditAllocationInput) => Promise<CreditAllocation>;
1089
+ /** Change the split and/or repeat; applies from the next renewal. */
1090
+ updateCreditAllocation?: (allocationId: string, patch: UpdateCreditAllocationInput) => Promise<CreditAllocation>;
1091
+ /** Stop an allocation. Resolves even when the target could not be moved
1092
+ * back to free — check `targetMovedToFree` / `error`. */
1093
+ cancelCreditAllocation?: (allocationId: string, reason: string) => Promise<CancelCreditAllocationResult>;
1094
+ /** Transfers this workspace sent or received, newest first. */
1095
+ fetchCreditTransfers?: (input: {
1096
+ page: number;
1097
+ limit: number;
1098
+ }) => Promise<CreditTransfersPage>;
1099
+ /** Workspaces this one may allocate to: its organization's others. */
1100
+ fetchAllocationTargets?: () => Promise<CreditAllocationTarget[]>;
970
1101
  fetchTokens: (params?: {
971
1102
  showRevoked?: boolean;
972
1103
  }) => Promise<ApiToken[]>;
@@ -1284,7 +1415,7 @@ type IconProps = Omit<SVGProps<SVGSVGElement>, 'color' | 'strokeWidth' | 'width'
1284
1415
  };
1285
1416
  declare const SiconKey: ({ color, strokeWidth, size, ...props }: IconProps) => react.JSX.Element;
1286
1417
 
1287
- declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlansChange, showPerUserLimits: showPerUserLimitsProp, onShowPerUserLimitsChange, }?: {
1418
+ declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlansChange, showPerUserLimits: showPerUserLimitsProp, onShowPerUserLimitsChange, showCreditAllocations: showCreditAllocationsProp, onShowCreditAllocationsChange, }?: {
1288
1419
  embedded?: boolean;
1289
1420
  /** Controlled "plans" sub-view flag. When provided, the host (settings
1290
1421
  * wrapper) owns it so it can hide the sub-nav + show the Plans breadcrumb. */
@@ -1294,6 +1425,11 @@ declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlan
1294
1425
  * Only reachable when `api.fetchMemberCreditLimits` exists. */
1295
1426
  showPerUserLimits?: boolean;
1296
1427
  onShowPerUserLimitsChange?: (open: boolean) => void;
1428
+ /** Controlled "credit allocations" sub-view flag; same contract as
1429
+ * `showPlans`. Only reachable when `api.fetchCreditAllocations` exists and
1430
+ * the workspace is in an organization. */
1431
+ showCreditAllocations?: boolean;
1432
+ onShowCreditAllocationsChange?: (open: boolean) => void;
1297
1433
  }): react__default.JSX.Element;
1298
1434
 
1299
1435
  /**
@@ -1850,6 +1986,13 @@ declare function isLimitBelowUsage(failure: unknown): boolean;
1850
1986
  * spent more since. `null` when the failure is not one, or carries no figure.
1851
1987
  */
1852
1988
  declare function limitBelowUsageUsed(failure: unknown): number | null;
1989
+ /**
1990
+ * The error object carrying one of the billing `codes`, wherever the failure
1991
+ * keeps it. `UserFacingError` rewrites `err.code` to a category, so the
1992
+ * original body is searched: `code`, `error.*`, `body.*`, `data.*`,
1993
+ * `publicError.*` and `cause`, to a shallow depth. `null` when none matches.
1994
+ */
1995
+ declare function findBillingError(failure: unknown, codes: readonly string[]): Record<string, unknown> | null;
1853
1996
 
1854
1997
  /** Billing sub-view: per-member credit limits for the current billing cycle. */
1855
1998
  declare function PerUserLimitsView(): react.JSX.Element;
@@ -1893,6 +2036,141 @@ interface MemberCreditLimitModalProps {
1893
2036
  /** A fixed number of credits per cycle, or unlimited — for one member or the workspace default. */
1894
2037
  declare function MemberCreditLimitModal({ open, title, description, subject, resetKey, used, initialLimit, isSet, unit, onSave, onRemove, removeLabel, removeHint, saveSuccessMessage, removeSuccessMessage, onClose, onSaved, onStale, }: MemberCreditLimitModalProps): react.JSX.Element | null;
1895
2038
 
2039
+ /**
2040
+ * Credit allocation rules and copy, kept out of the components so a host can
2041
+ * test them. The server (billing, behind unified-backend) is the authority;
2042
+ * these only stop an obviously bad request and say clearly what happened.
2043
+ */
2044
+ declare const ALLOCATION_NOTE_MAX_LENGTH = 500;
2045
+ declare const CANCEL_REASON_MAX_LENGTH = 500;
2046
+ /**
2047
+ * Whether Billing offers credit allocations: the host implements them, and the
2048
+ * workspace is in an organization (allocations move credits between one
2049
+ * organization's workspaces, so a personal workspace has nowhere to send them).
2050
+ */
2051
+ declare function canShowCreditAllocations(api: Pick<SettingsApiAdapter, "fetchCreditAllocations">, workspace: Pick<SettingsWorkspaceCurrent, "organizationId"> | null | undefined, organization: Pick<SettingsOrganizationCurrent, "id"> | null | undefined): boolean;
2052
+ type AllocationValueValidation = {
2053
+ ok: true;
2054
+ value: number;
2055
+ } | {
2056
+ ok: false;
2057
+ reason: string;
2058
+ };
2059
+ /** Digits and one `.` — what the value input keeps as the user types. */
2060
+ declare function cleanAllocationValueInput(raw: string): string;
2061
+ /**
2062
+ * A split value as billing accepts it: > 0, at most two decimals, and at most
2063
+ * 100 for a percent. A fixed share over `balance` (when known) is refused too —
2064
+ * the first share moves from the balance right away.
2065
+ */
2066
+ declare function validateAllocationValue(mode: CreditAllocationMode, raw: string, balance?: number | null): AllocationValueValidation;
2067
+ /** A required note or reason: trimmed, non-empty, at most `max` characters. */
2068
+ declare function validateAllocationText(raw: string, max: number): {
2069
+ ok: true;
2070
+ value: string;
2071
+ } | {
2072
+ ok: false;
2073
+ reason: string;
2074
+ };
2075
+ /** `fixed 500` → "500 credits"; `percent 20` → "20%". */
2076
+ declare function formatAllocationSplit(split: {
2077
+ mode: CreditAllocationMode;
2078
+ value: number;
2079
+ }): string;
2080
+ /** "Every renewal" or "Once". */
2081
+ declare function formatAllocationRepeat(recurring: boolean): string;
2082
+ /** "500 credits every renewal", "20% of each renewal", "500 credits once". */
2083
+ declare function describeAllocation(allocation: Pick<CreditAllocation, "mode" | "value" | "recurring">): string;
2084
+ /** The other workspace's name, or a stand-in when it could not be resolved. */
2085
+ declare function allocationWorkspaceName(name: string | null | undefined): string;
2086
+ /**
2087
+ * Why the first transfer did not happen, when it failed. The allocation was
2088
+ * still made — so without this an admin would assume the credits moved.
2089
+ */
2090
+ declare function initialTransferWarning(allocation: Pick<CreditAllocation, "initialTransfer">): string | null;
2091
+ /** "Sent 500 credits at setup", when the first transfer went through. */
2092
+ declare function initialTransferSummary(allocation: Pick<CreditAllocation, "initialTransfer">): string | null;
2093
+ /**
2094
+ * What still needs doing after a cancel, or `null` when nothing does.
2095
+ *
2096
+ * Billing cancels the allocation even when moving the target back to free
2097
+ * fails (`error`). A target this allocation moved off free (`targetPlanChanged`)
2098
+ * that was not moved back stays on the $0 Custom plan, without its free monthly
2099
+ * credits. No customer-facing action moves a workspace to free immediately, so
2100
+ * the way out is Streamoid support. When billing left the target's plan on
2101
+ * purpose it says why (`reason`: it bought a plan of its own, or is already on
2102
+ * free), and nothing needs fixing; nor does a target that was never moved.
2103
+ */
2104
+ declare function cancelOutcomeWarning(result: Pick<CancelCreditAllocationResult, "targetMovedToFree" | "reason" | "error"> & {
2105
+ allocation?: Pick<CreditAllocation, "targetPlanChanged"> | null;
2106
+ }, targetName: string): string | null;
2107
+ /**
2108
+ * The toast after a cancel that needs nothing fixed: plain, or saying why
2109
+ * billing left a target this allocation had moved off free on its plan.
2110
+ */
2111
+ declare function cancelOutcomeSummary(result: Pick<CancelCreditAllocationResult, "targetMovedToFree" | "reason">, targetName: string): string;
2112
+ declare const ALLOCATION_ERROR_CODES: readonly ["INSUFFICIENT_CREDITS", "SOURCE_ON_FREE_PLAN", "ALLOCATION_NOT_ALLOWED", "TARGET_PLAN_CHANGE_FAILED"];
2113
+ type AllocationErrorCode = (typeof ALLOCATION_ERROR_CODES)[number];
2114
+ /** The billing allocation error in a failure: its code, details and server message. */
2115
+ declare function findAllocationError(failure: unknown): {
2116
+ code: AllocationErrorCode;
2117
+ details: Record<string, unknown>;
2118
+ message: string | null;
2119
+ } | null;
2120
+ /**
2121
+ * A plain sentence for a billing allocation refusal, or `null` when the
2122
+ * failure is not one (the caller then falls back to its generic message).
2123
+ */
2124
+ declare function allocationErrorMessage(failure: unknown): string | null;
2125
+
2126
+ /**
2127
+ * Billing sub-view: credits this workspace shares with, or receives from,
2128
+ * other workspaces of its organization. Changes are for organization admins
2129
+ * (`canManage` from the server); everyone else who reaches Billing reads.
2130
+ */
2131
+ declare function CreditAllocationsView(): react.JSX.Element;
2132
+
2133
+ type CreditAllocationModalProps = {
2134
+ kind: "create";
2135
+ /** Workspaces credits can go to. */
2136
+ targets: CreditAllocationTarget[];
2137
+ /** This workspace's available credits, when known: the first share comes out of it. */
2138
+ balance: number | null;
2139
+ onSave: (input: CreateCreditAllocationInput) => Promise<CreditAllocation>;
2140
+ onClose: () => void;
2141
+ /** After a save (or a failure that still left an allocation); the parent refetches. */
2142
+ onSaved: () => void;
2143
+ } | {
2144
+ kind: "edit";
2145
+ allocation: CreditAllocation;
2146
+ targetName: string;
2147
+ onSave: (patch: UpdateCreditAllocationInput) => Promise<CreditAllocation>;
2148
+ onClose: () => void;
2149
+ onSaved: () => void;
2150
+ };
2151
+ /** Create an allocation, or change an active one's split and repeat. */
2152
+ declare function CreditAllocationModal(props: CreditAllocationModalProps): react.JSX.Element;
2153
+
2154
+ interface CancelCreditAllocationModalProps {
2155
+ allocation: CreditAllocation;
2156
+ targetName: string;
2157
+ onCancel: (reason: string) => Promise<CancelCreditAllocationResult>;
2158
+ onClose: () => void;
2159
+ /**
2160
+ * After the allocation was canceled; the parent refetches. `planNotRestored`
2161
+ * is true when the target was left on the Custom plan and someone has to fix it.
2162
+ */
2163
+ onCanceled: (result: {
2164
+ planNotRestored: boolean;
2165
+ }) => void;
2166
+ }
2167
+ /**
2168
+ * Confirm a cancel with a reason. Billing cancels even when moving the target
2169
+ * back to free fails; that outcome stays on screen (not a toast that can be
2170
+ * missed) until the admin acknowledges it.
2171
+ */
2172
+ declare function CancelCreditAllocationModal({ allocation, targetName, onCancel, onClose, onCanceled, }: CancelCreditAllocationModalProps): react.JSX.Element;
2173
+
1896
2174
  declare function SettingsAdaptersProvider({ adapters, children, }: {
1897
2175
  adapters: SettingsAdapters;
1898
2176
  children: ReactNode;
@@ -1904,4 +2182,4 @@ declare function SettingsAdaptersProvider({ adapters, children, }: {
1904
2182
  */
1905
2183
  declare function useSettingsAdapters(): SettingsAdapters;
1906
2184
 
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 };
2185
+ export { ALLOCATION_ERROR_CODES, ALLOCATION_NOTE_MAX_LENGTH, APP_KEYS, type AllocationErrorCode, type AllocationValueValidation, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, CANCEL_REASON_MAX_LENGTH, CancelCreditAllocationModal, type CancelCreditAllocationModalProps, type CancelCreditAllocationResult, ConfirmDeleteModal, ConfirmLeaveModal, type ConnectedApp, ConnectedAppsContent, type CreateCreditAllocationInput, type CreatedToken, type CreditAllocation, CreditAllocationModal, type CreditAllocationModalProps, type CreditAllocationMode, type CreditAllocationStatus, type CreditAllocationTarget, type CreditAllocationsResponse, CreditAllocationsView, type CreditCycleUnit, type CreditLimitValidation, type CreditTransfer, type CreditTransfersPage, 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 SettingsOrganizationJoinableItem, 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 UpdateCreditAllocationInput, 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, allocationErrorMessage, allocationWorkspaceName, belowUsageReason, canShowCreditAllocations, cancelOutcomeSummary, cancelOutcomeWarning, cleanAllocationValueInput, cleanCreditLimitInput, countLabel, creditCycleUnit, describeAllocation, describeDefaultLimit, describeMemberLimit, findAllocationError, findBillingError, formatAllocationRepeat, formatAllocationSplit, formatCreditLimit, formatCredits, groupWorkspaceList, initialTransferSummary, initialTransferWarning, isLimitBelowUsage, joinMembersWithLimits, lastUsedLabel, limitBelowUsageUsed, limitSourceLabel, loadWorkspaceOrganization, memberRoleUpdate, minimumCreditLimit, resolveSettingsTabFromPath, roundCredits, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel, validateAllocationText, validateAllocationValue, validateCreditLimitInput, validateDefaultCreditLimitInput };