@odla-ai/chapter 0.61.0 → 0.63.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.cts CHANGED
@@ -147,11 +147,32 @@ declare const CHAPTER_EMAIL_EVENTS: Readonly<Record<string, ChapterEmailEvent>>;
147
147
  /** Resolve the event inventory for the site's actual send surfaces. Hub mail uses its declared CRM templates. */
148
148
  declare function chapterEmailEvents(chapter: Chapter): Record<string, ChapterEmailEvent>;
149
149
 
150
- type TextFields$1<Key extends string> = {
150
+ type TextFields$2<Key extends string> = {
151
151
  [Field in Key]: string;
152
152
  };
153
153
  /** User-visible language for sharing, delivery state, and leader rollups. */
154
- type AdminNetworkCopy = TextFields$1<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "transportReachable" | "transportUnavailable" | "transportNotChecked" | "edgeUnpaired" | "edgeUnpairedHint" | "bindingTransport" | "urlTransport" | "activeConfiguration" | "noActiveConfiguration" | "publicSiteAvailable" | "publicSiteUnavailable" | "publicSiteNotChecked" | "recordTotals" | "noRecordTotals">;
154
+ type AdminNetworkCopy = TextFields$2<"title" | "allowlistDescription" | "sharing" | "shareWith" | "shared" | "shareFailed" | "deliveryFailed" | "loadingRollup" | "loadRollupFailed" | "overview" | "configuredFollowers" | "reachableFollowers" | "recordsAcrossFollowers" | "noFollowers" | "followers" | "available" | "unavailable" | "transportReachable" | "transportUnavailable" | "transportNotChecked" | "edgeUnpaired" | "edgeUnpairedHint" | "bindingTransport" | "urlTransport" | "activeConfiguration" | "noActiveConfiguration" | "publicSiteAvailable" | "publicSiteUnavailable" | "publicSiteNotChecked" | "recordTotals" | "noRecordTotals">;
155
+
156
+ type TextFields$1<Key extends string> = {
157
+ [Field in Key]: string;
158
+ };
159
+ /**
160
+ * Member portal language. Placeholders in braces are filled by
161
+ * `formatChapterCopy()`. Sites override any field through `copy.portal`.
162
+ */
163
+ interface PortalCopy {
164
+ shell: TextFields$1<"navLabel" | "welcomeBack" | "home" | "backHome" | "yourProfile" | "signedInAs" | "signOut" | "adminConsole" | "openMenu" | "closeMenu" | "locked" | "loading" | "loadFailed" | "notFound">;
165
+ pages: TextFields$1<"comingSoon" | "comingIn" | "includedWith" | "upgrade" | "comingToPortal" | "tagNew" | "tagSoon">;
166
+ profile: TextFields$1<"eyebrow" | "editProfile" | "saveProfile" | "saving" | "cancel" | "uploadPhoto" | "changePhoto" | "photoUploading" | "photoFailed" | "memberSince" | "promptsTitle" | "promptsNote" | "answerEmpty" | "addPrompt" | "howYouFoundUs" | "referredBy" | "referredByNote" | "introducedBy" | "introducedByPlaceholder" | "namePlaceholder" | "locationPlaceholder" | "saved" | "conflict" | "saveFailed">;
167
+ /** Invitations and referrals. Templates take {tierName}, {article}, {inviteUrl}, {firstName}, {location}, {credit}. */
168
+ share: TextFields$1<"eyebrow" | "intro" | "officialTitle" | "officialBody" | "showMeHow" | "stepsEyebrow" | "openLinkedIn" | "copyDescription" | "linkedinDescription" | "postTitle" | "postBody" | "shareOnLinkedIn" | "previewPost" | "linkedinPost" | "linkTitle" | "linkBody" | "linkCredit" | "referralsCredit" | "copyLink" | "copied" | "copyBlocked" | "emailInvite" | "textInvite" | "inviteNote" | "emailSubject" | "emailBody" | "textBody" | "fallbackEmail" | "fallbackText" | "copyMessage" | "close" | "referralsTitle" | "referralsBody" | "inviteFriend" | "joined" | "inProcess" | "offNextYear" | "joinedWith"> & {
169
+ steps: string[];
170
+ };
171
+ /** The cohort course page and Home panel. Templates take {left}, {capacity}, {position}, {count}. */
172
+ course: TextFields$1<"eyebrow" | "reserve" | "seeDetails" | "courseDetails" | "youreIn" | "invitesOnWay" | "openMeet" | "giveUp" | "confirmGiveUp" | "joinWaitlist" | "onWaitlist" | "leaveWaitlist" | "seatsOpen" | "full" | "closed" | "when" | "dates" | "where" | "seats" | "googleMeet" | "inviteEvery" | "guidesTitle" | "sessionsTitle" | "materialsOpen" | "materialsLocked" | "items" | "outcomesTitle" | "toolkitTitle" | "timeTitle" | "open" | "read" | "do" | "watch" | "extra" | "failed" | "reserveYourSeat">;
173
+ }
174
+ /** Neutral defaults; a site supplies its own voice. */
175
+ declare const DEFAULT_PORTAL_COPY: PortalCopy;
155
176
 
156
177
  /** Copy for the person record panels: lifecycle actions, comms, scheduling, billing and meetings. */
157
178
  type AdminRecordsCopy = {
@@ -201,11 +222,13 @@ interface ChapterCopy {
201
222
  members: {
202
223
  loadFailed: string;
203
224
  account: TextFields<"signOut" | "adminConsole">;
204
- provisional: TextFields<"cardLabel" | "applicationNeeded" | "applicationNeededBody" | "apply" | "refunded" | "refundedBody" | "active" | "renews" | "introductionCall" | "calendarInvite" | "joinCall" | "bookCall" | "bookCallBody" | "chooseTime">;
225
+ provisional: TextFields<"cardLabel" | "applicationNeeded" | "applicationNeededBody" | "apply" | "refunded" | "refundedBody" | "declined" | "declinedBody" | "active" | "renews" | "introductionCall" | "calendarInvite" | "joinCall" | "bookCall" | "bookCallBody" | "chooseTime">;
205
226
  full: TextFields<"welcome">;
206
227
  gifts: TextFields<"title" | "body" | "noneAvailable" | "paid" | "saveCode" | "purchases" | "noPurchases" | "pending" | "redeemed" | "expired" | "revoked" | "rotate" | "rotated" | "rotateFailed" | "redeemTitle" | "code" | "redeem" | "redeemFailed">;
207
228
  reschedule: TextFields<"changeTime" | "unavailable" | "loadFailed" | "slotGone" | "loading" | "noTimes" | "rescheduling" | "keepTime">;
208
229
  };
230
+ /** Signed-in member portal: shell, pages, profile. */
231
+ portal: PortalCopy;
209
232
  admin: {
210
233
  auth: TextFields<"checking" | "notAuthorized" | "accountNotAuthorized" | "thisAccount" | "signOut" | "loading" | "signInNotConfigured" | "missingPublishableKey" | "noWorkspaces" | "signInTagline">;
211
234
  shell: TextFields<"adminRole" | "adminConsole" | "adminName" | "navigationLabel">;
@@ -268,6 +291,51 @@ interface ResolvedMemberContent {
268
291
  } | null;
269
292
  }
270
293
 
294
+ /** Invite links and referral credit for a chapter-mode site. */
295
+ interface ChapterMemberReferrals {
296
+ /** Public path that invite links live under; `<path>/<code>`. Defaults to `/join`. */
297
+ path?: string;
298
+ /** Where an invite link sends a visitor (absolute https URL or site path). `?ref=<code>` is appended. */
299
+ membershipUrl: string;
300
+ /** Lifetime of the first-party referral cookie, in days. Defaults to 90. */
301
+ cookieDays?: number;
302
+ /**
303
+ * Credit a dues-paying referrer earns when a friend they referred is approved
304
+ * on a dues-paying tier. Omit or `false` for invite links without credit.
305
+ */
306
+ credit?: {
307
+ valueCents: number;
308
+ } | false;
309
+ }
310
+ /** The signed-in member portal. Its navigation and access come from the member-content catalog. */
311
+ interface ChapterMemberPortal {
312
+ /** Prompts a member may answer on their profile, in display order. */
313
+ profilePrompts?: readonly string[];
314
+ /** How many prompts a member may answer. Defaults to 3. */
315
+ maxPrompts?: number;
316
+ /** Member profile photos in odla-db file storage. Defaults to true. */
317
+ photos?: boolean;
318
+ /** Cohort courses on one recurring Google Calendar event. Chapter mode only. */
319
+ courses?: boolean;
320
+ /** Personal invite links, Referred by, and optional credit. Chapter mode only. */
321
+ referrals?: ChapterMemberReferrals;
322
+ }
323
+ /** Resolved invite-link settings. */
324
+ interface ResolvedMemberReferrals {
325
+ path: string;
326
+ membershipUrl: string;
327
+ cookieDays: number;
328
+ creditCents: number | null;
329
+ }
330
+ /** Resolved member portal settings. */
331
+ interface ResolvedMemberPortal {
332
+ profilePrompts: readonly string[];
333
+ maxPrompts: number;
334
+ photos: boolean;
335
+ courses: boolean;
336
+ referrals: ResolvedMemberReferrals | null;
337
+ }
338
+
271
339
  /** Optional private Builder Library shared across Built Not Found and Chapters. */
272
340
  interface ChapterBuilderLibrary {
273
341
  /** Keep local admin authoring enabled. Defaults to true. */
@@ -484,6 +552,82 @@ interface ResolvedNetwork {
484
552
  readers: readonly ResolvedNetworkReader[];
485
553
  }
486
554
 
555
+ /** Brand identity and build-time tokens from the checked-in Chapter config. */
556
+ /** Typed semantic roles shared by the public site and application surfaces. */
557
+ interface ChapterBrandTokens {
558
+ background?: string;
559
+ surface?: string;
560
+ surface2?: string;
561
+ text?: string;
562
+ textMuted?: string;
563
+ textFaint?: string;
564
+ border?: string;
565
+ borderStrong?: string;
566
+ accent?: string;
567
+ accentStrong?: string;
568
+ accentSoft?: string;
569
+ onAccent?: string;
570
+ good?: string;
571
+ warn?: string;
572
+ danger?: string;
573
+ chart1?: string;
574
+ chart2?: string;
575
+ chart3?: string;
576
+ chart4?: string;
577
+ chart5?: string;
578
+ chart6?: string;
579
+ chartPositive?: string;
580
+ chartNegative?: string;
581
+ /** Admin/application content width, e.g. `"960px"`. */
582
+ contentWidth?: string;
583
+ panelRadius?: string;
584
+ panelShadow?: string;
585
+ masterDetailColumns?: string;
586
+ masterDetailMinHeight?: string;
587
+ /** Chapter-admin page padding shorthand. */
588
+ pagePadding?: string;
589
+ /** Chapter-admin workspace-tab padding shorthand. */
590
+ workspacePadding?: string;
591
+ }
592
+ /** Brand tokens that theme the site: theme, semantic roles, fonts, and logos. */
593
+ interface ChapterBrand {
594
+ /** Preloaded @odla-ai/ui theme name used by ThemeScope. */
595
+ theme?: string;
596
+ /** Named accent family supplied by the selected @odla-ai/ui theme. */
597
+ accent?: string;
598
+ /** Admin/application color mode. Explicit light is the safe default. */
599
+ colorScheme?: "light" | "dark" | "system";
600
+ tokens?: ChapterBrandTokens;
601
+ tokensDark?: ChapterBrandTokens;
602
+ /** Palette overrides written into styles.css :root (e.g. `{ moss: "#2F3E34" }`
603
+ * or `--ui-*` token names). Applies in BOTH light and dark unless overridden
604
+ * by {@link paletteDark}. */
605
+ palette?: Record<string, string>;
606
+ /** Dark-mode palette overrides. Same shape as {@link palette}; emitted under
607
+ * `:root[data-theme="dark"]` and `@media (prefers-color-scheme: dark)`, so a
608
+ * site brands both modes. */
609
+ paletteDark?: Record<string, string>;
610
+ /** Full token map for `.ui-invert` islands. A compiled custom theme normally
611
+ * uses its dark map here so inverted content never inherits stale composites. */
612
+ paletteInvert?: Record<string, string>;
613
+ fonts?: {
614
+ display?: string;
615
+ body?: string;
616
+ numeral?: string;
617
+ };
618
+ /** Short glyph used in compact admin chrome. Defaults to the first three
619
+ * letters of the chapter name. */
620
+ badge?: string;
621
+ wordmark?: string;
622
+ tagline?: string;
623
+ /** Header/footer nav sections for the web-component chrome: label → entries. */
624
+ nav?: Record<string, ReadonlyArray<{
625
+ label: string;
626
+ href: string;
627
+ }>>;
628
+ logos?: string;
629
+ }
630
+
487
631
  /**
488
632
  * Membership pricing for the group row (chapter mode).
489
633
  *
@@ -570,80 +714,18 @@ interface ChapterDb {
570
714
  secrets: {
571
715
  get(name: string): Promise<string>;
572
716
  };
573
- }
574
- /** Typed semantic roles shared by the public site and application surfaces. */
575
- interface ChapterBrandTokens {
576
- background?: string;
577
- surface?: string;
578
- surface2?: string;
579
- text?: string;
580
- textMuted?: string;
581
- textFaint?: string;
582
- border?: string;
583
- borderStrong?: string;
584
- accent?: string;
585
- accentStrong?: string;
586
- accentSoft?: string;
587
- onAccent?: string;
588
- good?: string;
589
- warn?: string;
590
- danger?: string;
591
- chart1?: string;
592
- chart2?: string;
593
- chart3?: string;
594
- chart4?: string;
595
- chart5?: string;
596
- chart6?: string;
597
- chartPositive?: string;
598
- chartNegative?: string;
599
- /** Admin/application content width, e.g. `"960px"`. */
600
- contentWidth?: string;
601
- panelRadius?: string;
602
- panelShadow?: string;
603
- masterDetailColumns?: string;
604
- masterDetailMinHeight?: string;
605
- /** Chapter-admin page padding shorthand. */
606
- pagePadding?: string;
607
- /** Chapter-admin workspace-tab padding shorthand. */
608
- workspacePadding?: string;
609
- }
610
- /** Brand tokens that theme the site: theme, semantic roles, fonts, and logos. */
611
- interface ChapterBrand {
612
- /** Preloaded @odla-ai/ui theme name used by ThemeScope. */
613
- theme?: string;
614
- /** Named accent family supplied by the selected @odla-ai/ui theme. */
615
- accent?: string;
616
- /** Admin/application color mode. Explicit light is the safe default. */
617
- colorScheme?: "light" | "dark" | "system";
618
- tokens?: ChapterBrandTokens;
619
- tokensDark?: ChapterBrandTokens;
620
- /** Palette overrides written into styles.css :root (e.g. `{ moss: "#2F3E34" }`
621
- * or `--ui-*` token names). Applies in BOTH light and dark unless overridden
622
- * by {@link paletteDark}. */
623
- palette?: Record<string, string>;
624
- /** Dark-mode palette overrides. Same shape as {@link palette}; emitted under
625
- * `:root[data-theme="dark"]` and `@media (prefers-color-scheme: dark)`, so a
626
- * site brands both modes. */
627
- paletteDark?: Record<string, string>;
628
- /** Full token map for `.ui-invert` islands. A compiled custom theme normally
629
- * uses its dark map here so inverted content never inherits stale composites. */
630
- paletteInvert?: Record<string, string>;
631
- fonts?: {
632
- display?: string;
633
- body?: string;
634
- numeral?: string;
717
+ /** odla-db file storage (present on the real client). Member photos use it. */
718
+ storage?: {
719
+ upload(path: string, data: BodyInit, contentType?: string, opts?: {
720
+ private?: boolean;
721
+ }): Promise<{
722
+ path: string;
723
+ size: number;
724
+ contentType: string;
725
+ }>;
726
+ sign(path: string, ttlSeconds?: number): Promise<string>;
727
+ delete(path: string): Promise<void>;
635
728
  };
636
- /** Short glyph used in compact admin chrome. Defaults to the first three
637
- * letters of the chapter name. */
638
- badge?: string;
639
- wordmark?: string;
640
- tagline?: string;
641
- /** Header/footer nav sections for the web-component chrome: label → entries. */
642
- nav?: Record<string, ReadonlyArray<{
643
- label: string;
644
- href: string;
645
- }>>;
646
- logos?: string;
647
729
  }
648
730
 
649
731
  /** One owner-editable transactional email template. Automatic sends require explicit `enabled: true`. */
@@ -705,6 +787,8 @@ interface ChapterAuth {
705
787
  * app allowlist; `"odla"` reads protected `$users.role` by exact subject ID.
706
788
  * Default `"odla"` for private Clerk mode, `"table"` for legacy modes. */
707
789
  superAdminSource?: "table" | "odla";
790
+ /** Require a second sign-in factor on admin routes: `off` (default), `report` (allow and log), `enforce`. */
791
+ adminSecondFactor?: "off" | "report" | "enforce";
708
792
  }
709
793
  /** The fully-resolved auth policy (defaults applied) carried on the {@link Chapter}. */
710
794
  interface ResolvedAuth {
@@ -715,6 +799,7 @@ interface ResolvedAuth {
715
799
  adminRole: string;
716
800
  superAdmins: boolean;
717
801
  superAdminSource: "none" | "table" | "odla";
802
+ adminSecondFactor: "off" | "report" | "enforce";
718
803
  }
719
804
  /** The application status pipeline. Which statuses exist, and the subsets a site
720
805
  * allows a call to be booked from / an application approved from. Defaults to
@@ -810,6 +895,8 @@ interface ChapterConfig {
810
895
  signupControl?: ChapterSignupControl;
811
896
  /** Authenticated parent + chapter member pages with server-enforced tier access. */
812
897
  memberContent?: ChapterMemberContent;
898
+ /** Signed-in member portal: profile, photos, courses, invite links and credit. */
899
+ memberPortal?: ChapterMemberPortal;
813
900
  /** Private docs, Brand asset references, and links for authorized site-building agents. */
814
901
  builderLibrary?: ChapterBuilderLibrary;
815
902
  /** Network-scoped canonical Person registry. Shadow mode is additive only:
@@ -915,6 +1002,8 @@ interface Chapter {
915
1002
  signupControl: ResolvedSignupControl | null;
916
1003
  /** Null unless the standard authenticated member-content surface is enabled. */
917
1004
  memberContent: ResolvedMemberContent | null;
1005
+ /** Null unless the member portal is enabled. */
1006
+ memberPortal: ResolvedMemberPortal | null;
918
1007
  /** Null unless the private scoped Builder Library is enabled. */
919
1008
  builderLibrary: ResolvedBuilderLibrary | null;
920
1009
  /** Null unless this hub explicitly enables the shadow Person registry. */
@@ -1105,7 +1194,7 @@ declare function normalizeNetworkCommercialStripeEvent(input: unknown, digest: s
1105
1194
  /** Deterministically rebuild the network commercial projection from its event log. */
1106
1195
  declare function projectNetworkCommercialEvents(input: readonly NetworkCommercialFact[], sources: readonly NetworkCommercialSource[]): NetworkCommercialProjection;
1107
1196
 
1108
- type Row$1 = Record<string, unknown>;
1197
+ type Row$6 = Record<string, unknown>;
1109
1198
  /** Exact chapter/runtime partition that binds every parity digest. */
1110
1199
  interface CommercialParityPartition {
1111
1200
  appId: string;
@@ -1166,7 +1255,7 @@ interface CommercialParityResult {
1166
1255
  declare function commercialParityDigest(secret: string, partition: CommercialParityPartition, kind: "application" | "customer" | "subscription", value: string): Promise<string>;
1167
1256
  /** Build the bounded disclosure from already-bounded local application rows. */
1168
1257
  declare function buildChapterCommercialParitySnapshot(input: {
1169
- rows: readonly Row$1[];
1258
+ rows: readonly Row$6[];
1170
1259
  secret: string;
1171
1260
  partition: CommercialParityPartition;
1172
1261
  siteId: string;
@@ -1993,13 +2082,78 @@ declare const membershipAuthorityEntities: Record<string, Entity>;
1993
2082
  /** Backend-only authority; browser roles, including a network admin, cannot directly change these rows. */
1994
2083
  declare const membershipAuthorityRules: DbRules;
1995
2084
 
2085
+ /**
2086
+ * Member catalog schema version 2: ordered navigation sections, page kinds,
2087
+ * navigation tags and icons. Version 1 documents remain valid and keep their
2088
+ * alphabetical section order; every field here requires `schemaVersion: 2`.
2089
+ */
2090
+ /** Packaged member features a catalog page can stand for. */
2091
+ declare const MEMBER_PAGE_FEATURES: readonly ["course", "share"];
2092
+ /** A packaged member feature: `course` (cohort course) or `share` (invite kit). */
2093
+ type MemberPageFeatureName = typeof MEMBER_PAGE_FEATURES[number];
2094
+ /** Fixed icon vocabulary. Content never carries SVG, URLs or markup. */
2095
+ declare const MEMBER_PAGE_ICONS: readonly ["home", "course", "library", "deals", "training", "events", "members", "share", "profile", "document", "calendar", "chat", "star"];
2096
+ /** One icon from {@link MEMBER_PAGE_ICONS}. */
2097
+ type MemberPageIcon = typeof MEMBER_PAGE_ICONS[number];
2098
+ /** Authored navigation tags. "Soon" and year tags are derived from placeholder pages. */
2099
+ declare const MEMBER_PAGE_TAGS: readonly ["new"];
2100
+ /** One tag from {@link MEMBER_PAGE_TAGS}. */
2101
+ type MemberPageTag = typeof MEMBER_PAGE_TAGS[number];
2102
+ /** How a page renders: authored Markdown, a not-yet-open placeholder, or a packaged feature. */
2103
+ type MemberPageKind = "markdown" | "placeholder" | "feature";
2104
+ /**
2105
+ * A page that is announced but not open. Without `availableYear` it reads as
2106
+ * "Coming soon"; with one, as "Coming in <year>".
2107
+ */
2108
+ interface MemberPagePlaceholder {
2109
+ /** Calendar year the page is expected to open. */
2110
+ availableYear?: number;
2111
+ /** Replaces the derived "Coming soon" / "Coming in <year>" badge text. */
2112
+ badge?: string;
2113
+ /** Label of a disabled call to action, e.g. "Investor form opens in 2027". */
2114
+ actionLabel?: string;
2115
+ }
2116
+ /** A catalog page backed by a packaged feature, gated by the page's audience. */
2117
+ interface MemberPageFeature {
2118
+ name: MemberPageFeatureName;
2119
+ /** Feature-specific identity, e.g. the course id for `course`. */
2120
+ ref?: string;
2121
+ }
2122
+ /**
2123
+ * One navigation group. A section without a label renders without a heading.
2124
+ * Section order is the order of the document's `sections` array.
2125
+ */
2126
+ interface MemberContentSection {
2127
+ id: string;
2128
+ label?: string;
2129
+ }
2130
+ interface SectionedDocument {
2131
+ sections?: readonly MemberContentSection[];
2132
+ }
2133
+ interface SectionedPage {
2134
+ navigation: {
2135
+ section: string;
2136
+ };
2137
+ }
2138
+ /**
2139
+ * Resolve display order for composed sections. Chapter-declared sections come
2140
+ * first, in the chapter's order (a chapter may list a parent section id to
2141
+ * place it, inheriting the parent's label when it gives none). Parent-declared
2142
+ * sections follow in the parent's order. Sections named only by pages (version
2143
+ * 1 labels, or documents without `sections`) follow alphabetically, which is
2144
+ * exactly the version 1 order. Sections without pages are dropped.
2145
+ */
2146
+ declare function composeMemberSections(parent: SectionedDocument | null | undefined, chapter: SectionedDocument | null | undefined, pages: readonly SectionedPage[]): MemberContentSection[];
2147
+
1996
2148
  /** Validate one complete parent or chapter authoring layer with actionable paths. */
1997
2149
  declare function validateMemberContentDocument(input: unknown, options?: MemberContentValidationOptions): MemberContentValidationResult;
1998
2150
  /** Validate or fail closed with every actionable document error. */
1999
2151
  declare function memberContentDocument(input: unknown, options?: MemberContentValidationOptions): MemberContentDocument;
2000
2152
 
2001
- /** Versioned contract for authenticated member content. */
2002
- declare const MEMBER_CONTENT_SCHEMA_VERSION: 1;
2153
+ /** Latest version of the authenticated member-content contract. Version 1 documents remain valid. */
2154
+ declare const MEMBER_CONTENT_SCHEMA_VERSION: 2;
2155
+ /** Every member-content schema version this release validates. */
2156
+ type MemberContentSchemaVersion = 1 | 2;
2003
2157
  /** Authenticated member projection endpoint. */
2004
2158
  declare const MEMBER_CONTENT_PATH: "/api/member-content";
2005
2159
  /** Dedicated signed Parent → Chapter content-delivery endpoint. */
@@ -2018,9 +2172,14 @@ interface MemberContentTarget {
2018
2172
  }
2019
2173
  /** Navigation is data, so agents do not have to coordinate route code. */
2020
2174
  interface MemberPageNavigation {
2175
+ /** A section id declared in `sections`, or (without `sections`) the section's display label. */
2021
2176
  section: string;
2022
2177
  order: number;
2023
2178
  parentId?: string;
2179
+ /** Schema version 2. */
2180
+ tag?: MemberPageTag;
2181
+ /** Schema version 2. */
2182
+ icon?: MemberPageIcon;
2024
2183
  }
2025
2184
  /** Explicit sets avoid unsafe assumptions that commercial tiers form a ladder. */
2026
2185
  type MemberPageAudience = {
@@ -2054,9 +2213,15 @@ interface MemberContentPage {
2054
2213
  audience: MemberPageAudience;
2055
2214
  /** Safe Markdown shown while the body is withheld. */
2056
2215
  teaserMarkdown?: string;
2057
- /** Never serialized to a viewer whose audience does not match. */
2058
- bodyMarkdown: string;
2216
+ /** Never serialized to a viewer whose audience does not match. Required for Markdown pages. */
2217
+ bodyMarkdown?: string;
2059
2218
  upsell?: MemberPageUpsell;
2219
+ /** Schema version 2; defaults to `markdown`. */
2220
+ kind?: MemberPageKind;
2221
+ /** Schema version 2; present exactly when `kind` is `placeholder`. */
2222
+ placeholder?: MemberPagePlaceholder;
2223
+ /** Schema version 2; present exactly when `kind` is `feature`. */
2224
+ feature?: MemberPageFeature;
2060
2225
  }
2061
2226
  /** Chapter-owned offer attached to a Parent page that delegated offer authority. */
2062
2227
  interface MemberPageUpsellOverride {
@@ -2065,13 +2230,15 @@ interface MemberPageUpsellOverride {
2065
2230
  }
2066
2231
  /** One complete source layer. Parent and Chapter layers are stored independently. */
2067
2232
  interface MemberContentDocument {
2068
- schemaVersion: typeof MEMBER_CONTENT_SCHEMA_VERSION;
2233
+ schemaVersion: MemberContentSchemaVersion;
2069
2234
  revision: number;
2070
2235
  generatedAt: number;
2071
2236
  source: MemberContentSource;
2072
2237
  target?: MemberContentTarget;
2073
2238
  pages: readonly MemberContentPage[];
2074
2239
  upsellOverrides?: readonly MemberPageUpsellOverride[];
2240
+ /** Schema version 2: navigation groups in display order. */
2241
+ sections?: readonly MemberContentSection[];
2075
2242
  }
2076
2243
  /** Provider-neutral tier facts used to validate access and resolve safe offers. */
2077
2244
  interface MemberContentTierAuthority {
@@ -2102,6 +2269,8 @@ interface EffectiveMemberContentPage extends MemberContentPage {
2102
2269
  /** Deterministically ordered parent and chapter layers with their source revisions. */
2103
2270
  interface EffectiveMemberContent {
2104
2271
  pages: readonly EffectiveMemberContentPage[];
2272
+ /** Navigation groups in display order; only groups that have pages. Always set by `composeMemberContent`. */
2273
+ sections?: readonly MemberContentSection[];
2105
2274
  parentRevision: number | null;
2106
2275
  chapterRevision: number | null;
2107
2276
  }
@@ -2125,6 +2294,10 @@ interface MemberContentPageProjection {
2125
2294
  audience: MemberPageAudience;
2126
2295
  source: MemberContentSource;
2127
2296
  access: "allowed" | "locked";
2297
+ /** Always sent by the server; a hand-built preview may omit it to mean `markdown`. */
2298
+ kind?: MemberPageKind;
2299
+ placeholder?: MemberPagePlaceholder;
2300
+ feature?: MemberPageFeature;
2128
2301
  teaserMarkdown?: string;
2129
2302
  bodyMarkdown?: string;
2130
2303
  upsell?: ResolvedMemberPageUpsell;
@@ -2132,6 +2305,8 @@ interface MemberContentPageProjection {
2132
2305
  /** Complete viewer-safe member navigation and revision projection. */
2133
2306
  interface MemberContentProjection {
2134
2307
  pages: readonly MemberContentPageProjection[];
2308
+ /** Always sent by the server; a hand-built preview may omit it. */
2309
+ sections?: readonly MemberContentSection[];
2135
2310
  viewer: {
2136
2311
  tierId: string | null;
2137
2312
  admin: boolean;
@@ -2160,6 +2335,17 @@ type MemberContentRejection = "invalid_document" | "invalid_digest" | "wrong_sou
2160
2335
 
2161
2336
  /** Compose immutable Parent content with independently stored Chapter content. */
2162
2337
  declare function composeMemberContent(parent: MemberContentDocument | null | undefined, chapter: MemberContentDocument | null | undefined): EffectiveMemberContent;
2338
+ /**
2339
+ * The single member-content access decision. A page's lock in the catalog and
2340
+ * the API routes of the feature it stands for both come from this function.
2341
+ */
2342
+ declare const memberPageAllowed: (page: MemberContentPage, viewer: MemberContentViewer) => boolean;
2343
+ /**
2344
+ * Whether a viewer may use a packaged feature. A feature is enabled only by a
2345
+ * catalog page of kind `feature` naming it (and `ref`, when given); access is
2346
+ * that page's audience. No page means the feature is off for everyone.
2347
+ */
2348
+ declare function memberFeatureAccess(content: Pick<EffectiveMemberContent, "pages">, viewer: MemberContentViewer, name: MemberPageFeatureName, ref?: string): "allowed" | "locked" | "absent";
2163
2349
  /** Restricted bodies are omitted and authored offers are joined to live tier authority. */
2164
2350
  declare function projectMemberContent(content: EffectiveMemberContent, viewer: MemberContentViewer, tiers: readonly MemberContentTierAuthority[]): MemberContentProjection;
2165
2351
 
@@ -2335,6 +2521,313 @@ declare function createBuilderLibraryEnvelope(document: BuilderLibraryDocument):
2335
2521
  digest: string;
2336
2522
  }>;
2337
2523
 
2524
+ /**
2525
+ * Validate the member portal. Courses and invite links are chapter-mode
2526
+ * features and need the member-content catalog, whose feature pages switch
2527
+ * them on and decide who may use them.
2528
+ */
2529
+ declare function resolveMemberPortal(mode: ChapterMode, input: ChapterMemberPortal | undefined, hasMemberContent: boolean): ResolvedMemberPortal | null;
2530
+
2531
+ /** Namespaces the configured member portal needs. All are deny-all to clients. */
2532
+ declare function memberPortalEntities(mode: ChapterMode, portal: ResolvedMemberPortal | null, hasMemberContent: boolean): Record<string, Entity>;
2533
+
2534
+ type Row$5 = Record<string, unknown>;
2535
+ /**
2536
+ * The signed-in person as a member of this site, independent of mode. In a
2537
+ * chapter the member is their application and access is the membership
2538
+ * authority's answer; in a hub the member is an active admin grant and there
2539
+ * are no tiers. Administrative roles never make someone a member.
2540
+ */
2541
+ interface PortalMember {
2542
+ /** Stable key for portal rows: the application id, or the hub grant id. */
2543
+ memberId: string;
2544
+ source: "application" | "hub-grant";
2545
+ email: string;
2546
+ firstName?: string;
2547
+ lastName?: string;
2548
+ tierId: string | null;
2549
+ /** When membership began (epoch ms), for "Member since". */
2550
+ memberSince: number | null;
2551
+ row: Row$5;
2552
+ }
2553
+ /** `member` only for someone with current member access. */
2554
+ type PortalMemberResult = {
2555
+ status: "member";
2556
+ member: PortalMember;
2557
+ } | {
2558
+ status: "not-member";
2559
+ row?: Row$5;
2560
+ } | {
2561
+ status: "unavailable";
2562
+ };
2563
+ /** The member's own identity block, as `/api/me` returns it under `portal`. */
2564
+ interface PortalIdentity {
2565
+ memberId: string;
2566
+ tier: {
2567
+ id: string;
2568
+ name: string;
2569
+ } | null;
2570
+ memberSince: number | null;
2571
+ displayName: string;
2572
+ firstName: string | null;
2573
+ initials: string;
2574
+ location: string | null;
2575
+ photoUrl: string | null;
2576
+ }
2577
+ /** First letters of the first and last words, uppercased: "Jane Morgan" → "JM". */
2578
+ declare function initialsOf(name: string): string;
2579
+
2580
+ /**
2581
+ * Profile fields a member edits, each mapped to the authority contract row
2582
+ * that permits it. A field the contract stops listing becomes read-only here.
2583
+ */
2584
+ declare const MEMBER_PROFILE_FIELDS: {
2585
+ readonly preferredName: "person.preferredName";
2586
+ readonly location: "person.region";
2587
+ readonly prompts: "person.profilePrompts";
2588
+ readonly introducedByText: "person.introducedByText";
2589
+ };
2590
+ /** One editable profile field name. */
2591
+ type MemberProfileField = keyof typeof MEMBER_PROFILE_FIELDS;
2592
+ /** One answered prompt. */
2593
+ interface MemberProfilePrompt {
2594
+ prompt: string;
2595
+ answer: string;
2596
+ }
2597
+ /** A validated profile edit. Absent keys are left as they are. */
2598
+ interface MemberProfilePatch {
2599
+ preferredName?: string | null;
2600
+ location?: string | null;
2601
+ prompts?: MemberProfilePrompt[];
2602
+ introducedByText?: string | null;
2603
+ }
2604
+ /** Answers are short and plain; control characters never reach storage. */
2605
+ declare const MAX_PROMPT_ANSWER = 280;
2606
+ /** Validate a member's PUT body against the contract and the site's prompt list. */
2607
+ declare function validateProfilePatch(body: Record<string, unknown>, portal: Pick<ResolvedMemberPortal, "profilePrompts" | "maxPrompts">): {
2608
+ ok: true;
2609
+ patch: MemberProfilePatch;
2610
+ } | {
2611
+ ok: false;
2612
+ errors: string[];
2613
+ };
2614
+ /** Normalize a person's name for exact matching: case, spacing and surrounding punctuation ignored. */
2615
+ declare const nameKey: (value: string) => string;
2616
+ /** "Maria Lopez" → "Maria L.": how a member sees another member's name. */
2617
+ declare function shortName(firstName: unknown, lastName: unknown): string;
2618
+
2619
+ /** The signed-in member's own profile. */
2620
+ declare const MEMBER_PROFILE_PATH = "/api/member/profile";
2621
+ /** Upload (POST) the member's own photo as a raw JPEG or PNG body. */
2622
+ declare const MEMBER_PHOTO_PATH = "/api/member/profile/photo";
2623
+ /** The largest photo accepted, before cleaning. */
2624
+ declare const MAX_PHOTO_BYTES: number;
2625
+ /** Photos are resized in the browser; the stored image is at most this many pixels a side. */
2626
+ declare const PHOTO_SIZE = 400;
2627
+
2628
+ /** Admin roster for a hub's members. A grant is member access only; it never touches admin roles. */
2629
+ declare const HUB_MEMBERS_PATH = "/api/admin/hub-members";
2630
+
2631
+ /**
2632
+ * Byte-level image hygiene for member photos, with no decoder: identify JPEG or
2633
+ * PNG by magic bytes, read dimensions, and rebuild the file keeping only what
2634
+ * is needed to draw it. EXIF (including GPS), XMP, ICC-free comments and PNG
2635
+ * text chunks never reach storage.
2636
+ */
2637
+ interface CleanImage {
2638
+ contentType: "image/jpeg" | "image/png";
2639
+ extension: "jpg" | "png";
2640
+ width: number;
2641
+ height: number;
2642
+ bytes: Uint8Array;
2643
+ }
2644
+ /** Identify and clean a JPEG or PNG. Anything else, or a malformed file, is null. */
2645
+ declare function cleanImage(bytes: Uint8Array): CleanImage | null;
2646
+
2647
+ type Row$4 = Record<string, unknown>;
2648
+ /** Lowercase letters and digits without look-alikes (no 0, 1, i, l, o). */
2649
+ declare const REFERRAL_CODE_ALPHABET = "23456789abcdefghjkmnpqrstuvwxyz";
2650
+ /** A code's shape, for routes that must recognise one before any lookup. */
2651
+ declare const REFERRAL_CODE_PATTERN: RegExp;
2652
+ /** A random code. It encodes nothing about the member. */
2653
+ declare function newReferralCode(random?: (n: number) => Uint8Array): string;
2654
+ /**
2655
+ * Return the member's code, issuing their first one if needed. The row id is
2656
+ * the member's next generation, so two concurrent first visits cannot both
2657
+ * issue a code; a colliding random code is simply drawn again.
2658
+ */
2659
+ declare function ensureReferralCode(db: ChapterDb, memberId: string, now?: number): Promise<Row$4>;
2660
+ /**
2661
+ * Deactivate a member's code (for example one posted publicly by mistake) and
2662
+ * issue a new one. Referrals already recorded keep their referrer and credit.
2663
+ */
2664
+ declare function reissueReferralCode(db: ChapterDb, memberId: string, actor: string, now?: number): Promise<Row$4>;
2665
+
2666
+ /** First-party cookie holding the first invite code a visitor followed. */
2667
+ declare const REFERRAL_COOKIE = "odla_ref";
2668
+ /** Lifecycle stages kept for each referral, oldest first. Clicks are recorded separately. */
2669
+ type ReferralStage = "applied" | "paid" | "approved" | "declined" | "withdrawn";
2670
+ /** The invite code from the request's cookie, if it holds a well-formed one. */
2671
+ declare function referralCodeFromCookie(header: string | null): string | null;
2672
+
2673
+ type Row$3 = Record<string, unknown>;
2674
+ /** Ledger row statuses. Rows are never edited; a correction is a new row. */
2675
+ type LedgerStatus = "earned" | "applied" | "carried_forward" | "void";
2676
+ /** What a referrer's rows add up to. `carried_forward` rows are records, not money. */
2677
+ interface LedgerTotals {
2678
+ earnedCents: number;
2679
+ appliedCents: number;
2680
+ voidedCents: number;
2681
+ carriedForwardCents: number;
2682
+ balanceCents: number;
2683
+ }
2684
+ /** Fold a referrer's rows into totals. The balance is earned minus applied minus void. */
2685
+ declare function foldLedger(rows: readonly Row$3[]): LedgerTotals;
2686
+
2687
+ /** The signed-in member's invite link and what it has done. */
2688
+ declare const MEMBER_REFERRALS_PATH = "/api/member/referrals";
2689
+
2690
+ /** Where to send a visitor: the membership page, with `?ref=` placed before any fragment. */
2691
+ declare function membershipRedirect(membershipUrl: string, origin: string, code: string | null): string;
2692
+
2693
+ /** One reading, task or recording before a session. A material without a link stays hidden. */
2694
+ interface CourseMaterial {
2695
+ kind: "read" | "do" | "watch" | "extra";
2696
+ label: string;
2697
+ meta?: string;
2698
+ url?: string;
2699
+ }
2700
+ /** One live session. */
2701
+ interface CourseSession {
2702
+ date: string;
2703
+ startsAt: number;
2704
+ endsAt: number;
2705
+ topic: string;
2706
+ description?: string;
2707
+ materials: CourseMaterial[];
2708
+ }
2709
+ /** A guide shown on the course page. */
2710
+ interface CourseGuide {
2711
+ name: string;
2712
+ role?: string;
2713
+ bio?: string;
2714
+ photoUrl?: string;
2715
+ }
2716
+ /** Free-form course copy, all plain text or safe Markdown shown as written. */
2717
+ interface CourseContent {
2718
+ basedOn?: string;
2719
+ short?: string;
2720
+ when?: string;
2721
+ start?: string;
2722
+ dates?: string;
2723
+ outcomes?: string[];
2724
+ time?: string;
2725
+ partnerMarkdown?: string;
2726
+ }
2727
+ /** Course settings an admin edits without code. */
2728
+ interface CourseSettings {
2729
+ id: string;
2730
+ title: string;
2731
+ timezone: string;
2732
+ capacity: number;
2733
+ signupClosesAt: number;
2734
+ content: CourseContent;
2735
+ sessions: CourseSession[];
2736
+ toolkit: Array<Omit<CourseMaterial, "kind">>;
2737
+ guides: CourseGuide[];
2738
+ }
2739
+ /** Validate an admin's course settings. Capacity can never drop below the seats already taken. */
2740
+ declare function validateCourseSettings(input: unknown, enrolledCount?: number): {
2741
+ ok: true;
2742
+ value: CourseSettings;
2743
+ } | {
2744
+ ok: false;
2745
+ errors: string[];
2746
+ };
2747
+
2748
+ type Booking = {
2749
+ eventId?: string;
2750
+ id?: string;
2751
+ meetUrl?: string | null;
2752
+ };
2753
+ /**
2754
+ * The calendar calls a course makes (`@odla-ai/calendar` 0.4.0 and later): one
2755
+ * recurring event, then one guest added or removed at a time. Guests never
2756
+ * see each other, never invite others, and never edit the event.
2757
+ */
2758
+ interface CourseCalendar {
2759
+ create(input: Record<string, unknown>, opts: {
2760
+ idempotencyKey: string;
2761
+ }): Promise<{
2762
+ booking: Booking;
2763
+ }>;
2764
+ addAttendee(eventId: string, input: {
2765
+ idempotencyKey: string;
2766
+ email: string;
2767
+ notify?: boolean;
2768
+ }): Promise<{
2769
+ booking: Booking;
2770
+ duplicate: boolean;
2771
+ }>;
2772
+ removeAttendee(eventId: string, input: {
2773
+ idempotencyKey: string;
2774
+ email: string;
2775
+ notify?: boolean;
2776
+ }): Promise<{
2777
+ booking: Booking;
2778
+ duplicate: boolean;
2779
+ }>;
2780
+ }
2781
+ /** The single weekly event for a course: every session as one recurring series, with a Meet link. */
2782
+ declare function courseEventInput(course: CourseSettings): Record<string, unknown>;
2783
+
2784
+ type Row$2 = Record<string, unknown>;
2785
+ /** Seats, status and session list as one member may see them. Links and Meet open only to the enrolled. */
2786
+ declare function memberCourseView(course: Row$2, enrollments: Row$2[], memberId: string, now?: number): {
2787
+ meetUrl?: {} | undefined;
2788
+ course: {
2789
+ id: unknown;
2790
+ title: unknown;
2791
+ timezone: unknown;
2792
+ content: {};
2793
+ guides: {};
2794
+ capacity: number;
2795
+ seatsLeft: number;
2796
+ signupClosesAt: unknown;
2797
+ sessions: {
2798
+ materials: {
2799
+ kind: "read" | "do" | "watch" | "extra";
2800
+ label: string;
2801
+ meta?: string;
2802
+ }[];
2803
+ date: string;
2804
+ startsAt: number;
2805
+ endsAt: number;
2806
+ topic: string;
2807
+ description?: string;
2808
+ }[];
2809
+ toolkit: {
2810
+ kind: "read" | "do" | "watch" | "extra";
2811
+ label: string;
2812
+ meta?: string;
2813
+ }[];
2814
+ status: string;
2815
+ };
2816
+ enrollment: {
2817
+ status: unknown;
2818
+ waitlistPosition: number | null;
2819
+ } | null;
2820
+ };
2821
+
2822
+ type Row$1 = Record<string, unknown>;
2823
+ /**
2824
+ * The tier a member is entitled to in the portal. An admin may grant a
2825
+ * different tier (for example after a payment-link upgrade), optionally until
2826
+ * a date; otherwise it is the tier they bought. Membership access itself is
2827
+ * unchanged: it still follows the purchase and the membership authority.
2828
+ */
2829
+ declare function entitledTierId(app: Row$1, now?: number): string | null;
2830
+
2338
2831
  /** The default shared CRM graph: people (with the application/member pipeline)
2339
2832
  * plus businesses and the `works_at` relation, in both modes. */
2340
2833
  declare function defaultCrm(mode: ChapterMode): CrmConfig;
@@ -4501,4 +4994,4 @@ declare function createMembershipAuthorityIntegration(): {
4501
4994
  seeds: never[];
4502
4995
  };
4503
4996
 
4504
- export { ADMINISTRATOR_AUDIENCE, ADMISSION_GRANTS_PATH, ADMISSION_GRANTS_SCHEMA_VERSION, type AccountModel, type AdminNotificationTrigger, type AdmissionDecision, type AdmissionGrantDocument, type AdmissionGrantEnvelope, type AdmissionGrantInput, type AdmissionGrantReceipt, type AdmissionGrantRejection, type AdmissionGrantRevisionRow, type AdmissionGrantRow, type AdmissionGrantValidation, type Applicant, type ApplicationBookingPatch, type ApplicationRecord, type ApplicationSummary, type Attr, type AttrType, BUILDER_LIBRARY_ADMIN_PATH, BUILDER_LIBRARY_CONTROL_PATH, BUILDER_LIBRARY_MANIFEST_PATH, BUILDER_LIBRARY_PROMOTE_PATH, BUILDER_LIBRARY_SCHEMA_VERSION, type BuilderLibraryBrandAssetRef, type BuilderLibraryDocument, type BuilderLibraryEnvelope, type BuilderLibraryManifest, type BuilderLibraryPromotionProvenance, type BuilderLibraryReceipt, type BuilderLibraryResource, type BuilderLibraryResourceKind, type BuilderLibraryResourceProvenance, type BuilderLibraryResourceStatus, type BuilderLibraryScope, type BuilderLibrarySource, type BuilderLibrarySourceType, type BuilderLibraryTarget, type BuilderLibraryValidationOptions, type BuilderLibraryValidationResult, type BuilderLibraryViewer, type BuyerGiftClaim, CHAPTER_EMAIL_EVENTS, CHAPTER_FLOW_FIELDS_SCHEMA_VERSION, CHAPTER_PROMOTION_ADAPTER, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterBuilderLibrary, type ChapterCommercialParityRecord, type ChapterCommercialParitySnapshot, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, type ChapterEmailEvent, type ChapterEmailIdentity, type ChapterEmails, type ChapterFieldFlow, type ChapterFlowField, type ChapterFlowFieldContract, type ChapterIntegrationDescriptor, type ChapterIntegrationOptions, type ChapterMemberContent, type ChapterMode, type ChapterNetwork, type ChapterNetworkReader, type ChapterNetworkTarget, type ChapterOperations, type ChapterPipeline, type ChapterPolicy, type ChapterPrices, type ChapterPromotionInput, type ChapterRunbookHints, type ChapterScheduling, type ChapterSends, type ChapterSignupControl, type ChapterTier, type ChapterTierConfig, type CheckoutVariables, type ClerkInviteInput, type ClerkMetadataInput, type ClerkResult, type ClerkRoleMetadata, type ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CommercialParityException, type CommercialParityExceptionKind, type CommercialParityPartition, type CommercialParityResult, type CompiledChapterBrandTokens, type ConfirmMembershipPaymentInput, DEFAULT_CHAPTER_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, EDGE_UNPAIRED, type EdgeUnpaired, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailEventReadiness, type EmailGroup, type EmailReadiness, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, type FederationEdge, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, HTML_BODY_LIMIT, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, type IssuedMembershipOffer, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LifecycleDeliveryResolution, type LiveEvent, MAX_GIFT_OFFERS, MEMBERSHIP_AUTHORITY_COLLECTIONS, MEMBERSHIP_AUTHORITY_PATH, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, MEMBER_SELF_EDITABLE_FIELDS, MEMBER_SELF_READABLE_FIELDS, MEMBER_SYSTEM_AUTHORITY_MATRIX, MEMBER_SYSTEM_CONTRACT_VERSION, MEMBER_SYSTEM_RECORD_OWNERS, MEMBER_SYSTEM_RECOVERY_OBJECTIVES, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, type MemberAuthorityValidation, type MemberContentDocument, type MemberContentEnvelope, type MemberContentPage, type MemberContentPageProjection, type MemberContentProjection, type MemberContentReceipt, type MemberContentRejection, type MemberContentSource, type MemberContentSourceType, type MemberContentTarget, type MemberContentTierAuthority, type MemberContentValidationOptions, type MemberContentValidationResult, type MemberContentViewer, type MemberFieldAuthority, type MemberFieldSelfAccess, type MemberFieldSensitivity, type MemberPageAudience, type MemberPageNavigation, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberSession, type MemberStripeDisposition, type MemberStripeIdentity, type MemberStripeTarget, type MemberSystemAvailability, type MemberSystemAvailabilityInput, type MemberSystemEventReceiptInput, type MemberSystemEventReplayPlan, type MemberSystemMigrationPlan, type MemberSystemMigrationRow, type MemberSystemProjection, type MemberSystemRecoveryObjectives, type MemberSystemRollbackPlan, type MemberSystemScope, type MemberSystemWriteDisposition, type MemberSystemWriteIntent, type MemberSystemWriter, type MembershipAccessReceipt, type MembershipAuthorityHandlerOptions, type MembershipAuthorityPeer, type MembershipChapterEffect, type MembershipChapterEffectData, type MembershipCheckoutBinding, type MembershipCheckoutBindingInput, type MembershipCommercialOffer, type MembershipDiscountPolicyVersion, type MembershipEffectScope, type MembershipOfferIssuer, type MembershipOfferPreview, type MembershipOfferPreviewRequest, type MembershipOfferPreviewScope, type MembershipOfferRequest, type MembershipOfferingVersion, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipPaymentReceipt, type MembershipQuoteTarget, type MembershipRefundReceipt, type MembershipRenewalReceipt, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NamedSeatCheckoutReceipt, type NamedSeatCheckoutRequest, type NamedSeatEvidenceRequest, type NamedSeatInvitation, type NamedSeatInvitationRequest, type NamedSeatOffer, type NamedSeatOfferSeat, type NamedSeatRecipientReceipt, type NamedSeatRefundReceipt, type NamedSeatRegiftReceipt, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRecordSort, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, type PaymentsGroup, type PrivateRoleMigrationInput, type PrivateRoleRuntimeProof, type ProjectionDeps, type PublicGiftOffer, REQUIRED_NOTICE_KINDS, type ReconcileDecision, type RequestMembershipOfferOptions, type RequiredNoticeKind, type ResolvedApplication, type ResolvedAuth, type ResolvedBuilderLibrary, type ResolvedLeaderFormation, type ResolvedMemberContent, type ResolvedMemberPageUpsell, type ResolvedNetwork, type ResolvedNetworkReader, type ResolvedNetworkTarget, type ResolvedOperations, type ResolvedPipeline, type ResolvedScheduling, type ResolvedSends, type ResolvedSignupControl, type RoleChangeContext, type Rule, SCHEDULING_DEFAULTS, SIGNUP_CONTROL_PATH, SIGNUP_CONTROL_SCHEMA_VERSION, SIGNUP_CONTROL_THEME_MARKER, SIGNUP_CONTROL_THEME_STYLE_ID, SILVER_SALT_P0_FIXTURE, type SchedulingErrors, type SecretMode, type SecretStore, type SessionUser, type SharedBusiness, type SharedPerson, type SharedRecord, type SharedRecordV1, type SharedRecordV2, type SignupControlApplication, type SignupControlDocument, type SignupControlEnvelope, type SignupControlPolicy, type SignupControlReceipt, type SignupControlRejection, type SignupControlRuntimeTarget, type SignupControlTheme, type SignupControlThemeHead, type SignupControlThemeMetadata, type SignupControlThemeOptions, type SignupControlThemeRevision, type SignupControlThemeStyleTarget, type SignupControlTier, type SignupControlValidation, type StripeEvent, type StripeResult, type SubmitResult, type TierGroup, type TierGroupRow, type WebhookEvent, addMembershipCalendarMonths, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, approveNetworkMembership, backfillCrm, bindMembershipCheckout, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildChapterCommercialParitySnapshot, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterEmailEvents, chapterFlowFieldContract, checkoutVariables, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkRoleMetadata, clerkSetRole, clerkUserRequest, commercialParityDigest, composeMemberContent, confirmMembershipPayment, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createMembershipAuthorityHandler, createMembershipAuthorityIntegration, createMembershipCommercialOffer, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, deliverabilityHeaders, drainMembershipEffects, edgeUnpaired, emailGroupFrom, emailSenderWarnings, emailSpamSignals, endForSlot, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, formatChapterCopy, formationFields, formationFlowFields, frozenCheckoutVariables, getVaultSecret, giftOfferActive, hasDisclaimerAck, htmlBodyIssues, hydrateSignupControlTheme, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isRecipientFacing, isReconcilable, isSlotAvailable, isValidEmail, issueMembershipCommercialOffer, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, listUnsubscribeHeader, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipAuthorityEntities, membershipAuthorityRules, membershipCheckoutBindingId, membershipDiscountCouponId, membershipDiscountPolicyVersion, membershipOfferEntities, membershipOfferIdForRequest, membershipOfferRules, membershipOfferingVersion, membershipPageDocument, membershipTierPresentationFromMarkdown, namedSeatOfferDigest, networkCommercialSourceKey, networkMembershipId, networkSourceTag, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, pairingCommand, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, planPrivateRoleMigration, previewMembershipCommercialOffer, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, readMembershipAccess, readMembershipChapterEffect, readNamedSeatAccess, readNamedSeatInvitation, readNamedSeatOffer, reconcileCommercialParitySnapshot, reconcileLifecycleDelivery, reconcileMeetings, reconcileMembershipBilling, reconcileMembershipRenewal, reconcileStripeSnapshot, refundNetworkMembership, refundedPatch, render, renderHtmlBody, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, requestMembershipAccess, requestMembershipApproval, requestMembershipCancellation, requestMembershipChapterEffect, requestMembershipCheckoutBinding, requestMembershipCommercialOffer, requestMembershipOfferPreview, requestMembershipPayment, requestMembershipRefund, requestMembershipRenewal, requestMembershipRestart, requestNamedSeatAcceptance, requestNamedSeatAccess, requestNamedSeatApproval, requestNamedSeatCheckout, requestNamedSeatDecline, requestNamedSeatInvitation, requestNamedSeatOffer, requestNamedSeatOperatorRefund, requestNamedSeatPayment, requestNamedSeatRefund, requestNamedSeatRegift, requestNamedSeatReservation, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, seatPurchaseDeadline, sendTemplated, sharedPersonInput, sharedRecordFromCrm, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, textToHtml, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateEmailReadiness, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateScheduling, validateSignupControlDocument, verifyIssuedMembershipOffer, verifyMembershipAccessReceipt, verifyMembershipCheckoutBinding, verifyMembershipPaymentReceipt, webhookMutationId };
4997
+ export { ADMINISTRATOR_AUDIENCE, ADMISSION_GRANTS_PATH, ADMISSION_GRANTS_SCHEMA_VERSION, type AccountModel, type AdminNotificationTrigger, type AdmissionDecision, type AdmissionGrantDocument, type AdmissionGrantEnvelope, type AdmissionGrantInput, type AdmissionGrantReceipt, type AdmissionGrantRejection, type AdmissionGrantRevisionRow, type AdmissionGrantRow, type AdmissionGrantValidation, type Applicant, type ApplicationBookingPatch, type ApplicationRecord, type ApplicationSummary, type Attr, type AttrType, BUILDER_LIBRARY_ADMIN_PATH, BUILDER_LIBRARY_CONTROL_PATH, BUILDER_LIBRARY_MANIFEST_PATH, BUILDER_LIBRARY_PROMOTE_PATH, BUILDER_LIBRARY_SCHEMA_VERSION, type BuilderLibraryBrandAssetRef, type BuilderLibraryDocument, type BuilderLibraryEnvelope, type BuilderLibraryManifest, type BuilderLibraryPromotionProvenance, type BuilderLibraryReceipt, type BuilderLibraryResource, type BuilderLibraryResourceKind, type BuilderLibraryResourceProvenance, type BuilderLibraryResourceStatus, type BuilderLibraryScope, type BuilderLibrarySource, type BuilderLibrarySourceType, type BuilderLibraryTarget, type BuilderLibraryValidationOptions, type BuilderLibraryValidationResult, type BuilderLibraryViewer, type BuyerGiftClaim, CHAPTER_EMAIL_EVENTS, CHAPTER_FLOW_FIELDS_SCHEMA_VERSION, CHAPTER_PROMOTION_ADAPTER, type Chapter, type ChapterApplication, type ChapterAuth, type ChapterBrand, type ChapterBuilderLibrary, type ChapterCommercialParityRecord, type ChapterCommercialParitySnapshot, type ChapterConfig, type ChapterCopy, type ChapterCopyInput, type ChapterDb, type ChapterEmailEvent, type ChapterEmailIdentity, type ChapterEmails, type ChapterFieldFlow, type ChapterFlowField, type ChapterFlowFieldContract, type ChapterIntegrationDescriptor, type ChapterIntegrationOptions, type ChapterMemberContent, type ChapterMode, type ChapterNetwork, type ChapterNetworkReader, type ChapterNetworkTarget, type ChapterOperations, type ChapterPipeline, type ChapterPolicy, type ChapterPrices, type ChapterPromotionInput, type ChapterRunbookHints, type ChapterScheduling, type ChapterSends, type ChapterSignupControl, type ChapterTier, type ChapterTierConfig, type CheckoutVariables, type CleanImage, type ClerkInviteInput, type ClerkMetadataInput, type ClerkResult, type ClerkRoleMetadata, type ClerkUserInput, type ClerkUserRecord, type CommercialIdentity, type CommercialObjectKind, type CommercialParityException, type CommercialParityExceptionKind, type CommercialParityPartition, type CommercialParityResult, type CompiledChapterBrandTokens, type ConfirmMembershipPaymentInput, type CourseCalendar, type CourseContent, type CourseGuide, type CourseMaterial, type CourseSession, type CourseSettings, DEFAULT_CHAPTER_COPY, DEFAULT_PORTAL_COPY, DEFAULT_SHARE_FIELDS, type DashboardMetricData, type DashboardMetricSeries, type DbOp, type DbRules, type DbSchema, type DeliveryDecision, EDGE_UNPAIRED, type EdgeUnpaired, type EffectiveMemberContent, type EffectiveMemberContentPage, type EmailEventReadiness, type EmailGroup, type EmailReadiness, type EmailTemplate, type EmailTemplateRow, type Entity, type ExistingMeeting, type FederationEdge, GIFT_OFFER_CATALOG_VERSION, type GiftOffer, type GiftOfferCatalog, type GiftOfferTarget, type GiftOfferValidation, type GuardResult, HTML_BODY_LIMIT, HUB_MEMBERS_PATH, type IntegrationDescriptor, type IntegrationProvision, type IntegrationSecret, type IntegrationSetting, type IntegrationSync, type IssuedMembershipOffer, JOURNEY_ENDINGS, JOURNEY_STAGES, type JoinConfigGroup, type JoinConfigTier, type JoinContinuation, type JourneyEnding, type JourneyStage, type LeaderCrmOptions, type LeaderFormationConfig, type LedgerStatus, type LedgerTotals, type LifecycleDeliveryResolution, type LiveEvent, MAX_GIFT_OFFERS, MAX_PHOTO_BYTES, MAX_PROMPT_ANSWER, MEMBERSHIP_AUTHORITY_COLLECTIONS, MEMBERSHIP_AUTHORITY_PATH, MEMBERSHIP_PAGE_RENDERER, MEMBER_CONTENT_CONTROL_PATH, MEMBER_CONTENT_PATH, MEMBER_CONTENT_SCHEMA_VERSION, MEMBER_PAGE_FEATURES, MEMBER_PAGE_ICONS, MEMBER_PAGE_TAGS, MEMBER_PHOTO_PATH, MEMBER_PROFILE_FIELDS, MEMBER_PROFILE_PATH, MEMBER_REFERRALS_PATH, MEMBER_SELF_EDITABLE_FIELDS, MEMBER_SELF_READABLE_FIELDS, MEMBER_SYSTEM_AUTHORITY_MATRIX, MEMBER_SYSTEM_CONTRACT_VERSION, MEMBER_SYSTEM_RECORD_OWNERS, MEMBER_SYSTEM_RECOVERY_OBJECTIVES, type MailSender, type MeetingForReconcile, type MeetingRecord, type MeetingReschedulePatch, type MemberApplication, type MemberAuthorityValidation, type MemberContentDocument, type MemberContentEnvelope, type MemberContentPage, type MemberContentPageProjection, type MemberContentProjection, type MemberContentReceipt, type MemberContentRejection, type MemberContentSchemaVersion, type MemberContentSection, type MemberContentSource, type MemberContentSourceType, type MemberContentTarget, type MemberContentTierAuthority, type MemberContentValidationOptions, type MemberContentValidationResult, type MemberContentViewer, type MemberFieldAuthority, type MemberFieldSelfAccess, type MemberFieldSensitivity, type MemberPageAudience, type MemberPageFeature, type MemberPageFeatureName, type MemberPageIcon, type MemberPageKind, type MemberPageNavigation, type MemberPagePlaceholder, type MemberPageTag, type MemberPageUpsell, type MemberPageUpsellOffer, type MemberPageUpsellOverride, type MemberProfileField, type MemberProfilePatch, type MemberProfilePrompt, type MemberSession, type MemberStripeDisposition, type MemberStripeIdentity, type MemberStripeTarget, type MemberSystemAvailability, type MemberSystemAvailabilityInput, type MemberSystemEventReceiptInput, type MemberSystemEventReplayPlan, type MemberSystemMigrationPlan, type MemberSystemMigrationRow, type MemberSystemProjection, type MemberSystemRecoveryObjectives, type MemberSystemRollbackPlan, type MemberSystemScope, type MemberSystemWriteDisposition, type MemberSystemWriteIntent, type MemberSystemWriter, type MembershipAccessReceipt, type MembershipAuthorityHandlerOptions, type MembershipAuthorityPeer, type MembershipChapterEffect, type MembershipChapterEffectData, type MembershipCheckoutBinding, type MembershipCheckoutBindingInput, type MembershipCommercialOffer, type MembershipDiscountPolicyVersion, type MembershipEffectScope, type MembershipOfferIssuer, type MembershipOfferPreview, type MembershipOfferPreviewRequest, type MembershipOfferPreviewScope, type MembershipOfferRequest, type MembershipOfferingVersion, type MembershipPageDocument, type MembershipPageValidationOptions, type MembershipPageValidationResult, type MembershipPaymentReceipt, type MembershipQuoteTarget, type MembershipRefundReceipt, type MembershipRenewalReceipt, type MembershipTierAuthority, type MembershipTierCallout, type MembershipTierCapacity, type MembershipTierMarkdownResult, type MembershipTierPresentation, type MembershipTierVariant, type NamedSeatCheckoutReceipt, type NamedSeatCheckoutRequest, type NamedSeatEvidenceRequest, type NamedSeatInvitation, type NamedSeatInvitationRequest, type NamedSeatOffer, type NamedSeatOfferSeat, type NamedSeatRecipientReceipt, type NamedSeatRefundReceipt, type NamedSeatRegiftReceipt, type NetworkCommercialException, type NetworkCommercialFact, type NetworkCommercialProjectedRow, type NetworkCommercialProjection, type NetworkEditableField, type NetworkRecord, type NetworkRecordEdit, type NetworkRecordMutation, type NetworkRecordMutationResult, type NetworkRecordNote, type NetworkRecordPage, type NetworkRecordSort, type NetworkRollup, type NetworkRollupTarget, type NetworkSharedNote, type NetworkSnapshot, type NetworkStageTransition, type NetworkTargetTransportStatus, type NewMeetingRow, type NotifyDeps, type NotifyInput, type NotifyResult, PHOTO_SIZE, type PaymentsGroup, type PortalCopy, type PortalIdentity, type PortalMember, type PortalMemberResult, type PrivateRoleMigrationInput, type PrivateRoleRuntimeProof, type ProjectionDeps, type PublicGiftOffer, REFERRAL_CODE_ALPHABET, REFERRAL_CODE_PATTERN, REFERRAL_COOKIE, REQUIRED_NOTICE_KINDS, type ReconcileDecision, type ReferralStage, type RequestMembershipOfferOptions, type RequiredNoticeKind, type ResolvedApplication, type ResolvedAuth, type ResolvedBuilderLibrary, type ResolvedLeaderFormation, type ResolvedMemberContent, type ResolvedMemberPageUpsell, type ResolvedNetwork, type ResolvedNetworkReader, type ResolvedNetworkTarget, type ResolvedOperations, type ResolvedPipeline, type ResolvedScheduling, type ResolvedSends, type ResolvedSignupControl, type RoleChangeContext, type Rule, SCHEDULING_DEFAULTS, SIGNUP_CONTROL_PATH, SIGNUP_CONTROL_SCHEMA_VERSION, SIGNUP_CONTROL_THEME_MARKER, SIGNUP_CONTROL_THEME_STYLE_ID, SILVER_SALT_P0_FIXTURE, type SchedulingErrors, type SecretMode, type SecretStore, type SessionUser, type SharedBusiness, type SharedPerson, type SharedRecord, type SharedRecordV1, type SharedRecordV2, type SignupControlApplication, type SignupControlDocument, type SignupControlEnvelope, type SignupControlPolicy, type SignupControlReceipt, type SignupControlRejection, type SignupControlRuntimeTarget, type SignupControlTheme, type SignupControlThemeHead, type SignupControlThemeMetadata, type SignupControlThemeOptions, type SignupControlThemeRevision, type SignupControlThemeStyleTarget, type SignupControlTier, type SignupControlValidation, type StripeEvent, type StripeResult, type SubmitResult, type TierGroup, type TierGroupRow, type WebhookEvent, addMembershipCalendarMonths, applicantProfile, applicationBookingUpdate, applicationFlowFields, applicationSummary, applyMembershipTierMarkdown, approveNetworkMembership, backfillCrm, bindMembershipCheckout, bookingDecision, brandTokens, bucketSeries, buildBuilderLibraryManifest, buildChapterCommercialParitySnapshot, buildGroupSeed, buildTierSeeds, builderLibraryDigest, canApprove, canBook, canChangeRole, canTransition, canViewBuilderLibraryResource, canceledPatch, canonicalBuilderLibrary, canonicalMemberContent, canonicalSignupControl, chapterBrandFromTokens, chapterDb, chapterEmailEvents, chapterFlowFieldContract, checkoutVariables, clampArray, classifyMemberStripeEvent, classifyMemberSystemWrite, cleanImage, clerkGetUser, clerkGetUserByEmail, clerkIntegration, clerkInviteRequest, clerkListUsers, clerkRoleMetadata, clerkSetRole, clerkUserRequest, commercialParityDigest, composeMemberContent, composeMemberSections, confirmMembershipPayment, courseEventInput, createAdmissionGrantEnvelope, createBuilderLibraryEnvelope, createChapterIntegration, createClerkInvitation, createClerkUser, createMemberContentEnvelope, createMembershipAuthorityHandler, createMembershipAuthorityIntegration, createMembershipCommercialOffer, createSignupControlEnvelope, dashboardMetricData, defaultCrm, defineChapter, deliverabilityHeaders, drainMembershipEffects, edgeUnpaired, emailGroupFrom, emailSenderWarnings, emailSpamSignals, endForSlot, ensureReferralCode, entitledTierId, exportChapterPromotion, findAdmissionGrant, findApplicationRef, findGiftOffer, findTier, firstPaymentPatch, foldLedger, formatChapterCopy, formationFields, formationFlowFields, frozenCheckoutVariables, getVaultSecret, giftOfferActive, hasDisclaimerAck, htmlBodyIssues, hydrateSignupControlTheme, initialsOf, injectSignupControlThemeHead, introIdempotencyKey, isAdminRole, isAlreadySent, isRecipientFacing, isReconcilable, isSlotAvailable, isValidEmail, issueMembershipCommercialOffer, joinConfig, joinConfigTiers, leaderCrmConfig, listStripeObjects, listUnsubscribeHeader, loadLatestAdmissionRevision, loadOfferableTiers, loadTiers, materializeAdmissionGrants, meetingCreateRow, meetingRescheduleUpdate, memberApplication, memberContentDigest, memberContentDocument, memberCourseView, memberFeatureAccess, memberPageAllowed, memberPortalEntities, memberSession, memberSystemAvailability, memberSystemRollbackPlan, membershipAuthorityEntities, membershipAuthorityRules, membershipCheckoutBindingId, membershipDiscountCouponId, membershipDiscountPolicyVersion, membershipOfferEntities, membershipOfferIdForRequest, membershipOfferRules, membershipOfferingVersion, membershipPageDocument, membershipRedirect, membershipTierPresentationFromMarkdown, nameKey, namedSeatOfferDigest, networkCommercialSourceKey, networkMembershipId, networkSourceTag, newReferralCode, normalizeAdmissionEmail, normalizeChapterEmail, normalizeNetworkCommercialStripeEvent, normalizeSharedRecord, normalizeWebhookEvent, offerableTiers, pairingCommand, paymentsReady, personInputFromApp, planDelivery, planMemberSystemEventReplay, planMemberSystemMigration, planPrivateRoleMigration, previewMembershipCommercialOffer, projectApplicant, projectBuilderLibraryDelivery, projectMemberContent, projectMemberSelf, projectNetworkCommercialEvents, projectSharedRecord, promoteBuilderLibraryResource, publicGiftOffers, readMembershipAccess, readMembershipChapterEffect, readNamedSeatAccess, readNamedSeatInvitation, readNamedSeatOffer, reconcileCommercialParitySnapshot, reconcileLifecycleDelivery, reconcileMeetings, reconcileMembershipBilling, reconcileMembershipRenewal, reconcileStripeSnapshot, referralCodeFromCookie, refundNetworkMembership, refundedPatch, reissueReferralCode, render, renderHtmlBody, renderSignupControlThemeHead, renderSummary, renderTemplateBody, renewalPatch, requestMembershipAccess, requestMembershipApproval, requestMembershipCancellation, requestMembershipChapterEffect, requestMembershipCheckoutBinding, requestMembershipCommercialOffer, requestMembershipOfferPreview, requestMembershipPayment, requestMembershipRefund, requestMembershipRenewal, requestMembershipRestart, requestNamedSeatAcceptance, requestNamedSeatAccess, requestNamedSeatApproval, requestNamedSeatCheckout, requestNamedSeatDecline, requestNamedSeatInvitation, requestNamedSeatOffer, requestNamedSeatOperatorRefund, requestNamedSeatPayment, requestNamedSeatRefund, requestNamedSeatRegift, requestNamedSeatReservation, resolveApplication, resolveAuth, resolveBuilderLibrary, resolveChapterCopy, resolveJoinContinuation, resolveLeaderFormation, resolveMemberContent, resolveMemberPortal, resolveNetworkCommercialReadModel, resolveNetworkPersonRegistry, resolvePipeline, resolveScheduling, resolveSignupControl, resolveTiers, roleFromClaim, seatPurchaseDeadline, sendTemplated, sharedPersonInput, sharedRecordFromCrm, shortName, signupControlDigest, slotWindow, stageIndex, stripeCall, subAnnualCents, submitApplication, subscriptionIdempotencyKey, syncApplicationToCrm, textToHtml, tierIsFree, tierPayable, updateClerkUserMetadata, updateClerkUserMetadataByEmail, validateAdmissionGrantDocument, validateBuilderLibraryDocument, validateCourseSettings, validateEmailReadiness, validateGiftOfferCatalog, validateMemberContentDocument, validateMemberSystemAuthority, validateMembershipPageDocument, validateProfilePatch, validateScheduling, validateSignupControlDocument, verifyIssuedMembershipOffer, verifyMembershipAccessReceipt, verifyMembershipCheckoutBinding, verifyMembershipPaymentReceipt, webhookMutationId };