founder-schema 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +39 -0
  2. package/dist/access/capabilities.d.ts +34 -0
  3. package/dist/access/capabilities.d.ts.map +1 -0
  4. package/dist/access/capabilities.js +35 -0
  5. package/dist/access/capabilities.js.map +1 -0
  6. package/dist/access/permissions.d.ts +20 -1
  7. package/dist/access/permissions.d.ts.map +1 -1
  8. package/dist/access/permissions.js +4 -0
  9. package/dist/access/permissions.js.map +1 -1
  10. package/dist/core/errors.d.ts +39 -1
  11. package/dist/core/errors.d.ts.map +1 -1
  12. package/dist/core/errors.js +63 -0
  13. package/dist/core/errors.js.map +1 -1
  14. package/dist/core/limits.d.ts +12 -0
  15. package/dist/core/limits.d.ts.map +1 -1
  16. package/dist/core/limits.js +13 -0
  17. package/dist/core/limits.js.map +1 -1
  18. package/dist/core/responses.d.ts +53 -0
  19. package/dist/core/responses.d.ts.map +1 -1
  20. package/dist/core/responses.js +7 -0
  21. package/dist/core/responses.js.map +1 -1
  22. package/dist/core/validation.d.ts +6 -0
  23. package/dist/core/validation.d.ts.map +1 -1
  24. package/dist/core/validation.js +6 -0
  25. package/dist/core/validation.js.map +1 -1
  26. package/dist/domains/audit/audit.d.ts +47 -3
  27. package/dist/domains/audit/audit.d.ts.map +1 -1
  28. package/dist/domains/audit/audit.js +40 -4
  29. package/dist/domains/audit/audit.js.map +1 -1
  30. package/dist/domains/communities/communities.d.ts +1537 -0
  31. package/dist/domains/communities/communities.d.ts.map +1 -0
  32. package/dist/domains/communities/communities.js +464 -0
  33. package/dist/domains/communities/communities.js.map +1 -0
  34. package/dist/domains/feed/feed.d.ts +996 -45
  35. package/dist/domains/feed/feed.d.ts.map +1 -1
  36. package/dist/domains/feed/feed.js +197 -10
  37. package/dist/domains/feed/feed.js.map +1 -1
  38. package/dist/domains/media/media.d.ts +7 -1
  39. package/dist/domains/media/media.d.ts.map +1 -1
  40. package/dist/domains/media/media.js +5 -0
  41. package/dist/domains/media/media.js.map +1 -1
  42. package/dist/domains/members/members.d.ts +6 -0
  43. package/dist/domains/members/members.d.ts.map +1 -1
  44. package/dist/domains/members/members.js +5 -0
  45. package/dist/domains/members/members.js.map +1 -1
  46. package/dist/domains/moderation/moderation.d.ts +6 -4
  47. package/dist/domains/moderation/moderation.d.ts.map +1 -1
  48. package/dist/domains/moderation/moderation.js +9 -2
  49. package/dist/domains/moderation/moderation.js.map +1 -1
  50. package/dist/domains/notifications/notifications.d.ts +133 -4
  51. package/dist/domains/notifications/notifications.d.ts.map +1 -1
  52. package/dist/domains/notifications/notifications.js +80 -3
  53. package/dist/domains/notifications/notifications.js.map +1 -1
  54. package/dist/domains/team/team.d.ts +22 -0
  55. package/dist/domains/team/team.d.ts.map +1 -1
  56. package/dist/domains/team/team.js +22 -0
  57. package/dist/domains/team/team.js.map +1 -1
  58. package/dist/domains/uploads/uploads.d.ts +1 -0
  59. package/dist/domains/uploads/uploads.d.ts.map +1 -1
  60. package/dist/index.d.ts +5 -3
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +6 -3
  63. package/dist/index.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,1537 @@
1
+ /**
2
+ * founder-schema — Communities: official spaces inside Founder Circle (0.9.0)
3
+ *
4
+ * THE USER'S DECISIONS (2026-10-08), each asked on its own:
5
+ *
6
+ * - OFFICIAL: managers, super admins, and members given the
7
+ * `create_communities` capability create them. Everyone else SUGGESTS one;
8
+ * managers and super admins review the suggestions.
9
+ * - THREE TYPES, three separate questions answered per type:
10
+ *
11
+ * public private hidden
12
+ * listed in Discover yes yes no
13
+ * header (name, about, signed-in signed-in members and
14
+ * rules, admins, count) members members invitees (404 otherwise)
15
+ * posts, polls, members signed-in members only members only
16
+ * joining one tap request, then invite only,
17
+ * approval then accept
18
+ *
19
+ * Taking part (post, poll, comment, react, vote, save, report) is for
20
+ * members of every type. "Members" means ACTIVE members: someone who
21
+ * requested, was invited or is banned is a non-member for every rule.
22
+ * - PUBLIC MEANS PUBLIC INSIDE FOUNDER CIRCLE: a signed-out visitor sees no
23
+ * community content of any type, even by a shared link.
24
+ * - THE HOME FEED adds only the communities the member joined.
25
+ * - NO CHAT IN 0.9.0 (feed-first). Announcements are pinned posts
26
+ * (`COMMUNITY_PINS_MAX`), optionally notifying every member.
27
+ *
28
+ * A banned member sees the community as hidden (404 everywhere) until
29
+ * unbanned. Platform staff acting as moderator, manager or super admin READ
30
+ * every community, as they read every post, and moderate its content through
31
+ * the staff moderation queue; to take part they join like anyone else.
32
+ *
33
+ * Refusals follow what the caller can SEE: 404 for something they may not
34
+ * see (the same as for something that does not exist, so nothing is
35
+ * probed), 403 `COMMUNITY_JOIN_REQUIRED` for something they see but must join
36
+ * to read or to take part in.
37
+ *
38
+ * Content in a community carries no product and no ask, and cannot be
39
+ * reposted (a repost is general content, readable signed out): two leak paths
40
+ * closed by construction. Design: founder-circle-backend `docs/communities.md`.
41
+ *
42
+ * Inside a community:
43
+ *
44
+ * member moderator admin manager,
45
+ * super admin
46
+ * post, poll, comment, react, vote ✓ ✓ ✓ ✓ (a member)
47
+ * approve requests, invite, pin, hide ✓ ✓ ✓
48
+ * remove a member (not a moderator) ✓ ✓ ✓
49
+ * remove a moderator ✓ ✓
50
+ * remove or ban an admin ✓
51
+ * notify all, ban, roles, edit, type ✓ ✓
52
+ * archive, delete ✓
53
+ *
54
+ * An admin may unmake another admin (then act on them as on a member). Each
55
+ * member row says what this viewer may do to it (`communityMemberSchema.viewer`):
56
+ * a client never works it out from roles.
57
+ *
58
+ * A community always keeps an admin while anyone can be one
59
+ * (`COMMUNITY_LAST_ADMIN`): an admin leaves, steps down, or deletes their
60
+ * account only once someone else is admin (the user's rule, 2026-10-08). When
61
+ * nobody else is active, or the account was deleted where it cannot be
62
+ * refused (central sign-in), the community is ORPHANED: managers and super
63
+ * admins run it (they can act on any community), it is flagged in the audit
64
+ * log (`community.orphaned`), and the page says so to them (`orphaned`).
65
+ *
66
+ * Routes (all signed in):
67
+ * GET /api/v1/communities communityDiscoverQuerySchema -> communityCardPageSchema
68
+ * GET /api/v1/communities/mine paginationQuerySchema -> communityCardPageSchema
69
+ * GET /api/v1/communities/invites communityInvitesSchema (mine, waiting)
70
+ * GET /api/v1/communities/orphaned paginationQuerySchema -> communityCardPageSchema
71
+ * (managers, super admins: communities left with no admin, newest first)
72
+ * POST /api/v1/communities createCommunityBodySchema -> IdResponse
73
+ * GET /api/v1/communities/:communityId communitySchema
74
+ * PATCH /api/v1/communities/:communityId updateCommunityBodySchema -> communitySchema
75
+ * PUT /api/v1/communities/:communityId/icon setCommunityIconBodySchema -> communitySchema
76
+ * DELETE /api/v1/communities/:communityId/icon -> communitySchema
77
+ * PUT /api/v1/communities/:communityId/visibility setCommunityVisibilityBodySchema -> communitySchema
78
+ * PUT /api/v1/communities/:communityId/status setCommunityStatusBodySchema -> communitySchema (staff)
79
+ * DELETE /api/v1/communities/:communityId -> IdResponse (staff)
80
+ * GET /api/v1/communities/:communityId/feed paginationQuerySchema -> FeedPage (newest first;
81
+ * pinned items are in it too, in their place)
82
+ * GET /api/v1/communities/:communityId/pinned PinnedItems (feed)
83
+ * POST /api/v1/communities/:communityId/pins pinCommunityContentBodySchema -> PinnedItems
84
+ * DELETE /api/v1/communities/:communityId/pins/:contentId -> PinnedItems
85
+ * POST /api/v1/communities/:communityId/join -> communitySchema (public: joined; private: requested)
86
+ * DELETE /api/v1/communities/:communityId/join cancel a request -> communitySchema
87
+ * POST /api/v1/communities/:communityId/leave -> IdResponse
88
+ * GET /api/v1/communities/:communityId/members communityMembersQuerySchema -> communityMemberPageSchema
89
+ * GET /api/v1/communities/:communityId/requests paginationQuerySchema -> communityRequestPageSchema
90
+ * PUT /api/v1/communities/:communityId/requests/:userId approve -> IdResponse
91
+ * DELETE /api/v1/communities/:communityId/requests/:userId decline -> IdResponse
92
+ * GET /api/v1/communities/:communityId/invites paginationQuerySchema -> communityPendingInvitePageSchema
93
+ * POST /api/v1/communities/:communityId/invites inviteCommunityMemberBodySchema -> communityPendingInviteSchema
94
+ * DELETE /api/v1/communities/:communityId/invites/:userId cancel -> IdResponse
95
+ * PUT /api/v1/communities/:communityId/invite accept (the invitee) -> communitySchema
96
+ * DELETE /api/v1/communities/:communityId/invite decline (the invitee) -> IdResponse
97
+ * PUT /api/v1/communities/:communityId/members/:userId/role setCommunityMemberRoleBodySchema -> IdResponse
98
+ * DELETE /api/v1/communities/:communityId/members/:userId remove -> IdResponse
99
+ * GET /api/v1/communities/:communityId/bans paginationQuerySchema -> communityBanPageSchema
100
+ * POST /api/v1/communities/:communityId/bans banCommunityMemberBodySchema -> IdResponse
101
+ * DELETE /api/v1/communities/:communityId/bans/:userId unban -> IdResponse
102
+ * PUT /api/v1/communities/:communityId/content/:contentId/hidden hide in the community -> IdResponse
103
+ * DELETE /api/v1/communities/:communityId/content/:contentId/hidden restore -> IdResponse
104
+ * PUT /api/v1/communities/:communityId/comments/:commentId/hidden hide a comment in it -> IdResponse
105
+ * DELETE /api/v1/communities/:communityId/comments/:commentId/hidden restore -> IdResponse
106
+ * GET /api/v1/communities/:communityId/hidden paginationQuerySchema -> FeedPage (moderators:
107
+ * what ITS moderators hid, newest first; a staff hide is staff's to undo and is not listed)
108
+ * GET /api/v1/communities/:communityId/hidden/comments paginationQuerySchema -> commentPageSchema
109
+ * POST /api/v1/community-suggestions createCommunitySuggestionBodySchema -> communitySuggestionSchema
110
+ * GET /api/v1/community-suggestions/mine paginationQuerySchema -> communitySuggestionPageSchema
111
+ * GET /api/v1/community-suggestions communitySuggestionsQuerySchema -> communitySuggestionPageSchema (staff)
112
+ * POST /api/v1/community-suggestions/:suggestionId/approve createCommunityBodySchema -> IdResponse (the community)
113
+ * POST /api/v1/community-suggestions/:suggestionId/decline declineCommunitySuggestionBodySchema -> communitySuggestionSchema
114
+ * (posting into a community: `communityId` on the feed's create bodies)
115
+ *
116
+ * @module founder-schema/domains/communities
117
+ */
118
+ import { z } from 'zod';
119
+ /** Topics a community carries: what Discover filters by. */
120
+ export declare const COMMUNITY_TOPICS_MAX = 3;
121
+ /** Announcements pinned to the top of one community at once. */
122
+ export declare const COMMUNITY_PINS_MAX = 3;
123
+ /** Suggestions one member may have waiting for review at once. */
124
+ export declare const COMMUNITY_SUGGESTIONS_OPEN_MAX = 3;
125
+ /**
126
+ * The shortest time between two notify-everyone announcements in one
127
+ * community, so members are not spammed (`COMMUNITY_ANNOUNCE_TOO_SOON`).
128
+ */
129
+ export declare const COMMUNITY_ANNOUNCE_INTERVAL_MS: number;
130
+ /** See the module note's table. */
131
+ export declare const COMMUNITY_VISIBILITY_VALUES: readonly ["public", "private", "hidden"];
132
+ export declare const communityVisibilitySchema: z.ZodEnum<{
133
+ public: "public";
134
+ private: "private";
135
+ hidden: "hidden";
136
+ }>;
137
+ export type CommunityVisibility = z.infer<typeof communityVisibilitySchema>;
138
+ /**
139
+ * How private each type is, least first. A change to a LOWER rank exposes what
140
+ * was already posted, so it needs `confirmExposure` (and is audited).
141
+ */
142
+ export declare const COMMUNITY_VISIBILITY_RANK: {
143
+ readonly public: 0;
144
+ readonly private: 1;
145
+ readonly hidden: 2;
146
+ };
147
+ /** Whether moving from one type to another exposes what was already there. */
148
+ export declare function communityChangeExposes(from: CommunityVisibility, to: CommunityVisibility): boolean;
149
+ /** A member's role inside one community. */
150
+ export declare const COMMUNITY_ROLE_VALUES: readonly ["admin", "moderator", "member"];
151
+ export declare const communityRoleSchema: z.ZodEnum<{
152
+ moderator: "moderator";
153
+ member: "member";
154
+ admin: "admin";
155
+ }>;
156
+ export type CommunityRole = z.infer<typeof communityRoleSchema>;
157
+ /**
158
+ * Where someone stands with one community. `requested` (private: waiting for
159
+ * approval), `invited` (waiting for their answer), `banned` (the community is
160
+ * hidden from them). Leaving or being removed deletes the row.
161
+ */
162
+ export declare const COMMUNITY_MEMBER_STATUS_VALUES: readonly ["active", "requested", "invited", "banned"];
163
+ export declare const communityMemberStatusSchema: z.ZodEnum<{
164
+ active: "active";
165
+ requested: "requested";
166
+ invited: "invited";
167
+ banned: "banned";
168
+ }>;
169
+ export type CommunityMemberStatus = z.infer<typeof communityMemberStatusSchema>;
170
+ /** `archived`: read-only and out of Discover; members still read it. Staff only. */
171
+ export declare const COMMUNITY_STATUS_VALUES: readonly ["active", "archived"];
172
+ export declare const communityStatusSchema: z.ZodEnum<{
173
+ active: "active";
174
+ archived: "archived";
175
+ }>;
176
+ export type CommunityStatus = z.infer<typeof communityStatusSchema>;
177
+ export declare const COMMUNITY_SUGGESTION_STATUS_VALUES: readonly ["open", "approved", "declined"];
178
+ export declare const communitySuggestionStatusSchema: z.ZodEnum<{
179
+ open: "open";
180
+ approved: "approved";
181
+ declined: "declined";
182
+ }>;
183
+ export type CommunitySuggestionStatus = z.infer<typeof communitySuggestionStatusSchema>;
184
+ /**
185
+ * A community named on something else: "in AI Builders" on a post or poll, a
186
+ * notification. `iconUrl` is the icon's smallest size.
187
+ */
188
+ export declare const communityChipSchema: z.ZodObject<{
189
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
190
+ slug: z.ZodString;
191
+ name: z.ZodString;
192
+ iconUrl: z.ZodOptional<z.ZodURL>;
193
+ visibility: z.ZodEnum<{
194
+ public: "public";
195
+ private: "private";
196
+ hidden: "hidden";
197
+ }>;
198
+ archived: z.ZodOptional<z.ZodBoolean>;
199
+ }, z.core.$strip>;
200
+ export type CommunityChip = z.infer<typeof communityChipSchema>;
201
+ /** Where THIS viewer stands with a community, on a card. Banned viewers never see it. */
202
+ export declare const communityCardViewerSchema: z.ZodObject<{
203
+ status: z.ZodNullable<z.ZodEnum<{
204
+ active: "active";
205
+ requested: "requested";
206
+ invited: "invited";
207
+ }>>;
208
+ role: z.ZodNullable<z.ZodEnum<{
209
+ moderator: "moderator";
210
+ member: "member";
211
+ admin: "admin";
212
+ }>>;
213
+ }, z.core.$strip>;
214
+ export type CommunityCardViewer = z.infer<typeof communityCardViewerSchema>;
215
+ /** A community on Discover and in "your communities". */
216
+ export declare const communityCardSchema: z.ZodObject<{
217
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
218
+ slug: z.ZodString;
219
+ name: z.ZodString;
220
+ description: z.ZodString;
221
+ icon: z.ZodOptional<z.ZodObject<{
222
+ id: z.ZodString;
223
+ url: z.ZodURL;
224
+ width: z.ZodNumber;
225
+ height: z.ZodNumber;
226
+ variants: z.ZodArray<z.ZodObject<{
227
+ width: z.ZodNumber;
228
+ height: z.ZodNumber;
229
+ url: z.ZodURL;
230
+ }, z.core.$strip>>;
231
+ placeholder: z.ZodOptional<z.ZodString>;
232
+ }, z.core.$strip>>;
233
+ visibility: z.ZodEnum<{
234
+ public: "public";
235
+ private: "private";
236
+ hidden: "hidden";
237
+ }>;
238
+ status: z.ZodEnum<{
239
+ active: "active";
240
+ archived: "archived";
241
+ }>;
242
+ topics: z.ZodArray<z.ZodEnum<{
243
+ ai_ml: "ai_ml";
244
+ b2b_saas: "b2b_saas";
245
+ d2c: "d2c";
246
+ deeptech: "deeptech";
247
+ robotics: "robotics";
248
+ growth: "growth";
249
+ sales: "sales";
250
+ marketing: "marketing";
251
+ supply_chain: "supply_chain";
252
+ fundraising: "fundraising";
253
+ mentoring: "mentoring";
254
+ leadership: "leadership";
255
+ networking: "networking";
256
+ public_speaking: "public_speaking";
257
+ teaching: "teaching";
258
+ hiring_talent: "hiring_talent";
259
+ personal_branding: "personal_branding";
260
+ career_transition: "career_transition";
261
+ remote_work: "remote_work";
262
+ blockchain: "blockchain";
263
+ crypto_web3: "crypto_web3";
264
+ data_science: "data_science";
265
+ cybersecurity: "cybersecurity";
266
+ game_dev: "game_dev";
267
+ ux_design: "ux_design";
268
+ app_development: "app_development";
269
+ open_source: "open_source";
270
+ electronics: "electronics";
271
+ space_exploration: "space_exploration";
272
+ green_tech: "green_tech";
273
+ no_code: "no_code";
274
+ entrepreneurship: "entrepreneurship";
275
+ investing: "investing";
276
+ stock_trading: "stock_trading";
277
+ personal_finance: "personal_finance";
278
+ consulting: "consulting";
279
+ ecommerce: "ecommerce";
280
+ retail: "retail";
281
+ real_estate: "real_estate";
282
+ product_management: "product_management";
283
+ meditation: "meditation";
284
+ journaling: "journaling";
285
+ self_improvement: "self_improvement";
286
+ productivity: "productivity";
287
+ reading: "reading";
288
+ online_courses: "online_courses";
289
+ philosophy: "philosophy";
290
+ psychology: "psychology";
291
+ therapy: "therapy";
292
+ sleep_optimization: "sleep_optimization";
293
+ gym: "gym";
294
+ yoga: "yoga";
295
+ photography: "photography";
296
+ writing: "writing";
297
+ graphic_design: "graphic_design";
298
+ filmmaking: "filmmaking";
299
+ digital_art: "digital_art";
300
+ content_creation: "content_creation";
301
+ blogging: "blogging";
302
+ vlogging: "vlogging";
303
+ podcasts: "podcasts";
304
+ animation: "animation";
305
+ music_production: "music_production";
306
+ volunteering: "volunteering";
307
+ ngo_work: "ngo_work";
308
+ environmental: "environmental";
309
+ women_empowerment: "women_empowerment";
310
+ community_service: "community_service";
311
+ social_enterprise: "social_enterprise";
312
+ education_access: "education_access";
313
+ }>>;
314
+ memberCount: z.ZodNumber;
315
+ postCount: z.ZodNumber;
316
+ viewer: z.ZodOptional<z.ZodObject<{
317
+ status: z.ZodNullable<z.ZodEnum<{
318
+ active: "active";
319
+ requested: "requested";
320
+ invited: "invited";
321
+ }>>;
322
+ role: z.ZodNullable<z.ZodEnum<{
323
+ moderator: "moderator";
324
+ member: "member";
325
+ admin: "admin";
326
+ }>>;
327
+ }, z.core.$strip>>;
328
+ }, z.core.$strip>;
329
+ export type CommunityCard = z.infer<typeof communityCardSchema>;
330
+ /**
331
+ * What THIS viewer may do on the community page, decided by the server and
332
+ * sent as plain answers (the rule of `viewerStateSchema` on a post): a client
333
+ * never derives a power from `role`.
334
+ */
335
+ export declare const communityViewerSchema: z.ZodObject<{
336
+ status: z.ZodNullable<z.ZodEnum<{
337
+ active: "active";
338
+ requested: "requested";
339
+ invited: "invited";
340
+ }>>;
341
+ role: z.ZodNullable<z.ZodEnum<{
342
+ moderator: "moderator";
343
+ member: "member";
344
+ admin: "admin";
345
+ }>>;
346
+ canRead: z.ZodBoolean;
347
+ canSeeMembers: z.ZodBoolean;
348
+ canJoin: z.ZodBoolean;
349
+ canRequest: z.ZodBoolean;
350
+ canPost: z.ZodBoolean;
351
+ canLeave: z.ZodBoolean;
352
+ canModerate: z.ZodBoolean;
353
+ canManage: z.ZodBoolean;
354
+ canAnnounce: z.ZodBoolean;
355
+ canArchive: z.ZodBoolean;
356
+ }, z.core.$strip>;
357
+ export type CommunityViewer = z.infer<typeof communityViewerSchema>;
358
+ /**
359
+ * One person in a community, live-joined like every byline. In the member
360
+ * list, admins first, then moderators, then members, each by when they joined.
361
+ * `viewer` (0.9.0, on the member list only) is what THIS viewer may do to
362
+ * them, the server's own rules (who outranks whom, never oneself, never the
363
+ * last admin).
364
+ */
365
+ export declare const communityMemberSchema: z.ZodObject<{
366
+ userId: z.ZodString;
367
+ username: z.ZodString;
368
+ displayName: z.ZodString;
369
+ avatarUrl: z.ZodOptional<z.ZodURL>;
370
+ headline: z.ZodOptional<z.ZodString>;
371
+ role: z.ZodEnum<{
372
+ moderator: "moderator";
373
+ member: "member";
374
+ admin: "admin";
375
+ }>;
376
+ joinedAt: z.ZodISODateTime;
377
+ viewer: z.ZodOptional<z.ZodObject<{
378
+ canSetRole: z.ZodBoolean;
379
+ canRemove: z.ZodBoolean;
380
+ canBan: z.ZodBoolean;
381
+ }, z.core.$strip>>;
382
+ }, z.core.$strip>;
383
+ export type CommunityMember = z.infer<typeof communityMemberSchema>;
384
+ /** The community page. The header is what a non-member of a private one may see too. */
385
+ export declare const communitySchema: z.ZodObject<{
386
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
387
+ slug: z.ZodString;
388
+ name: z.ZodString;
389
+ description: z.ZodString;
390
+ icon: z.ZodOptional<z.ZodObject<{
391
+ id: z.ZodString;
392
+ url: z.ZodURL;
393
+ width: z.ZodNumber;
394
+ height: z.ZodNumber;
395
+ variants: z.ZodArray<z.ZodObject<{
396
+ width: z.ZodNumber;
397
+ height: z.ZodNumber;
398
+ url: z.ZodURL;
399
+ }, z.core.$strip>>;
400
+ placeholder: z.ZodOptional<z.ZodString>;
401
+ }, z.core.$strip>>;
402
+ visibility: z.ZodEnum<{
403
+ public: "public";
404
+ private: "private";
405
+ hidden: "hidden";
406
+ }>;
407
+ status: z.ZodEnum<{
408
+ active: "active";
409
+ archived: "archived";
410
+ }>;
411
+ topics: z.ZodArray<z.ZodEnum<{
412
+ ai_ml: "ai_ml";
413
+ b2b_saas: "b2b_saas";
414
+ d2c: "d2c";
415
+ deeptech: "deeptech";
416
+ robotics: "robotics";
417
+ growth: "growth";
418
+ sales: "sales";
419
+ marketing: "marketing";
420
+ supply_chain: "supply_chain";
421
+ fundraising: "fundraising";
422
+ mentoring: "mentoring";
423
+ leadership: "leadership";
424
+ networking: "networking";
425
+ public_speaking: "public_speaking";
426
+ teaching: "teaching";
427
+ hiring_talent: "hiring_talent";
428
+ personal_branding: "personal_branding";
429
+ career_transition: "career_transition";
430
+ remote_work: "remote_work";
431
+ blockchain: "blockchain";
432
+ crypto_web3: "crypto_web3";
433
+ data_science: "data_science";
434
+ cybersecurity: "cybersecurity";
435
+ game_dev: "game_dev";
436
+ ux_design: "ux_design";
437
+ app_development: "app_development";
438
+ open_source: "open_source";
439
+ electronics: "electronics";
440
+ space_exploration: "space_exploration";
441
+ green_tech: "green_tech";
442
+ no_code: "no_code";
443
+ entrepreneurship: "entrepreneurship";
444
+ investing: "investing";
445
+ stock_trading: "stock_trading";
446
+ personal_finance: "personal_finance";
447
+ consulting: "consulting";
448
+ ecommerce: "ecommerce";
449
+ retail: "retail";
450
+ real_estate: "real_estate";
451
+ product_management: "product_management";
452
+ meditation: "meditation";
453
+ journaling: "journaling";
454
+ self_improvement: "self_improvement";
455
+ productivity: "productivity";
456
+ reading: "reading";
457
+ online_courses: "online_courses";
458
+ philosophy: "philosophy";
459
+ psychology: "psychology";
460
+ therapy: "therapy";
461
+ sleep_optimization: "sleep_optimization";
462
+ gym: "gym";
463
+ yoga: "yoga";
464
+ photography: "photography";
465
+ writing: "writing";
466
+ graphic_design: "graphic_design";
467
+ filmmaking: "filmmaking";
468
+ digital_art: "digital_art";
469
+ content_creation: "content_creation";
470
+ blogging: "blogging";
471
+ vlogging: "vlogging";
472
+ podcasts: "podcasts";
473
+ animation: "animation";
474
+ music_production: "music_production";
475
+ volunteering: "volunteering";
476
+ ngo_work: "ngo_work";
477
+ environmental: "environmental";
478
+ women_empowerment: "women_empowerment";
479
+ community_service: "community_service";
480
+ social_enterprise: "social_enterprise";
481
+ education_access: "education_access";
482
+ }>>;
483
+ memberCount: z.ZodNumber;
484
+ postCount: z.ZodNumber;
485
+ rules: z.ZodArray<z.ZodString>;
486
+ team: z.ZodArray<z.ZodObject<{
487
+ userId: z.ZodString;
488
+ username: z.ZodString;
489
+ displayName: z.ZodString;
490
+ avatarUrl: z.ZodOptional<z.ZodURL>;
491
+ headline: z.ZodOptional<z.ZodString>;
492
+ role: z.ZodEnum<{
493
+ moderator: "moderator";
494
+ member: "member";
495
+ admin: "admin";
496
+ }>;
497
+ joinedAt: z.ZodISODateTime;
498
+ viewer: z.ZodOptional<z.ZodObject<{
499
+ canSetRole: z.ZodBoolean;
500
+ canRemove: z.ZodBoolean;
501
+ canBan: z.ZodBoolean;
502
+ }, z.core.$strip>>;
503
+ }, z.core.$strip>>;
504
+ createdAt: z.ZodISODateTime;
505
+ updatedAt: z.ZodISODateTime;
506
+ archivedAt: z.ZodNullable<z.ZodISODateTime>;
507
+ orphaned: z.ZodOptional<z.ZodBoolean>;
508
+ viewer: z.ZodOptional<z.ZodObject<{
509
+ status: z.ZodNullable<z.ZodEnum<{
510
+ active: "active";
511
+ requested: "requested";
512
+ invited: "invited";
513
+ }>>;
514
+ role: z.ZodNullable<z.ZodEnum<{
515
+ moderator: "moderator";
516
+ member: "member";
517
+ admin: "admin";
518
+ }>>;
519
+ canRead: z.ZodBoolean;
520
+ canSeeMembers: z.ZodBoolean;
521
+ canJoin: z.ZodBoolean;
522
+ canRequest: z.ZodBoolean;
523
+ canPost: z.ZodBoolean;
524
+ canLeave: z.ZodBoolean;
525
+ canModerate: z.ZodBoolean;
526
+ canManage: z.ZodBoolean;
527
+ canAnnounce: z.ZodBoolean;
528
+ canArchive: z.ZodBoolean;
529
+ }, z.core.$strip>>;
530
+ }, z.core.$strip>;
531
+ export type Community = z.infer<typeof communitySchema>;
532
+ /** A request to join a private community, as its moderators see it. */
533
+ export declare const communityRequestSchema: z.ZodObject<{
534
+ member: z.ZodObject<{
535
+ userId: z.ZodString;
536
+ username: z.ZodString;
537
+ displayName: z.ZodString;
538
+ avatarUrl: z.ZodOptional<z.ZodURL>;
539
+ headline: z.ZodOptional<z.ZodString>;
540
+ }, z.core.$strip>;
541
+ requestedAt: z.ZodISODateTime;
542
+ }, z.core.$strip>;
543
+ export type CommunityRequest = z.infer<typeof communityRequestSchema>;
544
+ /** An invitation nobody has answered yet, as its moderators see it. */
545
+ export declare const communityPendingInviteSchema: z.ZodObject<{
546
+ member: z.ZodObject<{
547
+ userId: z.ZodString;
548
+ username: z.ZodString;
549
+ displayName: z.ZodString;
550
+ avatarUrl: z.ZodOptional<z.ZodURL>;
551
+ headline: z.ZodOptional<z.ZodString>;
552
+ }, z.core.$strip>;
553
+ invitedBy: z.ZodNullable<z.ZodObject<{
554
+ userId: z.ZodString;
555
+ username: z.ZodString;
556
+ displayName: z.ZodString;
557
+ avatarUrl: z.ZodOptional<z.ZodURL>;
558
+ headline: z.ZodOptional<z.ZodString>;
559
+ }, z.core.$strip>>;
560
+ invitedAt: z.ZodISODateTime;
561
+ }, z.core.$strip>;
562
+ export type CommunityPendingInvite = z.infer<typeof communityPendingInviteSchema>;
563
+ /** An invitation waiting for the viewer's answer. */
564
+ export declare const communityInviteSchema: z.ZodObject<{
565
+ community: z.ZodObject<{
566
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
567
+ slug: z.ZodString;
568
+ name: z.ZodString;
569
+ iconUrl: z.ZodOptional<z.ZodURL>;
570
+ visibility: z.ZodEnum<{
571
+ public: "public";
572
+ private: "private";
573
+ hidden: "hidden";
574
+ }>;
575
+ archived: z.ZodOptional<z.ZodBoolean>;
576
+ description: z.ZodString;
577
+ }, z.core.$strip>;
578
+ invitedBy: z.ZodNullable<z.ZodObject<{
579
+ userId: z.ZodString;
580
+ username: z.ZodString;
581
+ displayName: z.ZodString;
582
+ avatarUrl: z.ZodOptional<z.ZodURL>;
583
+ headline: z.ZodOptional<z.ZodString>;
584
+ }, z.core.$strip>>;
585
+ invitedAt: z.ZodISODateTime;
586
+ }, z.core.$strip>;
587
+ export type CommunityInvite = z.infer<typeof communityInviteSchema>;
588
+ /** `GET /communities/invites`. Never paged: invitations are few, and each needs an answer. */
589
+ export declare const communityInvitesSchema: z.ZodObject<{
590
+ items: z.ZodArray<z.ZodObject<{
591
+ community: z.ZodObject<{
592
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
593
+ slug: z.ZodString;
594
+ name: z.ZodString;
595
+ iconUrl: z.ZodOptional<z.ZodURL>;
596
+ visibility: z.ZodEnum<{
597
+ public: "public";
598
+ private: "private";
599
+ hidden: "hidden";
600
+ }>;
601
+ archived: z.ZodOptional<z.ZodBoolean>;
602
+ description: z.ZodString;
603
+ }, z.core.$strip>;
604
+ invitedBy: z.ZodNullable<z.ZodObject<{
605
+ userId: z.ZodString;
606
+ username: z.ZodString;
607
+ displayName: z.ZodString;
608
+ avatarUrl: z.ZodOptional<z.ZodURL>;
609
+ headline: z.ZodOptional<z.ZodString>;
610
+ }, z.core.$strip>>;
611
+ invitedAt: z.ZodISODateTime;
612
+ }, z.core.$strip>>;
613
+ }, z.core.$strip>;
614
+ export type CommunityInvites = z.infer<typeof communityInvitesSchema>;
615
+ /** Someone banned from a community, as its admins see it. */
616
+ export declare const communityBanSchema: z.ZodObject<{
617
+ member: z.ZodObject<{
618
+ userId: z.ZodString;
619
+ username: z.ZodString;
620
+ displayName: z.ZodString;
621
+ avatarUrl: z.ZodOptional<z.ZodURL>;
622
+ headline: z.ZodOptional<z.ZodString>;
623
+ }, z.core.$strip>;
624
+ bannedBy: z.ZodNullable<z.ZodObject<{
625
+ userId: z.ZodString;
626
+ username: z.ZodString;
627
+ displayName: z.ZodString;
628
+ avatarUrl: z.ZodOptional<z.ZodURL>;
629
+ headline: z.ZodOptional<z.ZodString>;
630
+ }, z.core.$strip>>;
631
+ bannedAt: z.ZodISODateTime;
632
+ reason: z.ZodOptional<z.ZodString>;
633
+ }, z.core.$strip>;
634
+ export type CommunityBan = z.infer<typeof communityBanSchema>;
635
+ /** A suggestion, as its author and the reviewers see it. */
636
+ export declare const communitySuggestionSchema: z.ZodObject<{
637
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
638
+ suggestedBy: z.ZodNullable<z.ZodObject<{
639
+ userId: z.ZodString;
640
+ username: z.ZodString;
641
+ displayName: z.ZodString;
642
+ avatarUrl: z.ZodOptional<z.ZodURL>;
643
+ headline: z.ZodOptional<z.ZodString>;
644
+ }, z.core.$strip>>;
645
+ name: z.ZodString;
646
+ description: z.ZodString;
647
+ why: z.ZodOptional<z.ZodString>;
648
+ visibility: z.ZodEnum<{
649
+ public: "public";
650
+ private: "private";
651
+ hidden: "hidden";
652
+ }>;
653
+ topics: z.ZodArray<z.ZodEnum<{
654
+ ai_ml: "ai_ml";
655
+ b2b_saas: "b2b_saas";
656
+ d2c: "d2c";
657
+ deeptech: "deeptech";
658
+ robotics: "robotics";
659
+ growth: "growth";
660
+ sales: "sales";
661
+ marketing: "marketing";
662
+ supply_chain: "supply_chain";
663
+ fundraising: "fundraising";
664
+ mentoring: "mentoring";
665
+ leadership: "leadership";
666
+ networking: "networking";
667
+ public_speaking: "public_speaking";
668
+ teaching: "teaching";
669
+ hiring_talent: "hiring_talent";
670
+ personal_branding: "personal_branding";
671
+ career_transition: "career_transition";
672
+ remote_work: "remote_work";
673
+ blockchain: "blockchain";
674
+ crypto_web3: "crypto_web3";
675
+ data_science: "data_science";
676
+ cybersecurity: "cybersecurity";
677
+ game_dev: "game_dev";
678
+ ux_design: "ux_design";
679
+ app_development: "app_development";
680
+ open_source: "open_source";
681
+ electronics: "electronics";
682
+ space_exploration: "space_exploration";
683
+ green_tech: "green_tech";
684
+ no_code: "no_code";
685
+ entrepreneurship: "entrepreneurship";
686
+ investing: "investing";
687
+ stock_trading: "stock_trading";
688
+ personal_finance: "personal_finance";
689
+ consulting: "consulting";
690
+ ecommerce: "ecommerce";
691
+ retail: "retail";
692
+ real_estate: "real_estate";
693
+ product_management: "product_management";
694
+ meditation: "meditation";
695
+ journaling: "journaling";
696
+ self_improvement: "self_improvement";
697
+ productivity: "productivity";
698
+ reading: "reading";
699
+ online_courses: "online_courses";
700
+ philosophy: "philosophy";
701
+ psychology: "psychology";
702
+ therapy: "therapy";
703
+ sleep_optimization: "sleep_optimization";
704
+ gym: "gym";
705
+ yoga: "yoga";
706
+ photography: "photography";
707
+ writing: "writing";
708
+ graphic_design: "graphic_design";
709
+ filmmaking: "filmmaking";
710
+ digital_art: "digital_art";
711
+ content_creation: "content_creation";
712
+ blogging: "blogging";
713
+ vlogging: "vlogging";
714
+ podcasts: "podcasts";
715
+ animation: "animation";
716
+ music_production: "music_production";
717
+ volunteering: "volunteering";
718
+ ngo_work: "ngo_work";
719
+ environmental: "environmental";
720
+ women_empowerment: "women_empowerment";
721
+ community_service: "community_service";
722
+ social_enterprise: "social_enterprise";
723
+ education_access: "education_access";
724
+ }>>;
725
+ status: z.ZodEnum<{
726
+ open: "open";
727
+ approved: "approved";
728
+ declined: "declined";
729
+ }>;
730
+ decidedBy: z.ZodNullable<z.ZodObject<{
731
+ userId: z.ZodString;
732
+ username: z.ZodString;
733
+ displayName: z.ZodString;
734
+ avatarUrl: z.ZodOptional<z.ZodURL>;
735
+ headline: z.ZodOptional<z.ZodString>;
736
+ }, z.core.$strip>>;
737
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
738
+ declineReason: z.ZodOptional<z.ZodString>;
739
+ community: z.ZodOptional<z.ZodObject<{
740
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
741
+ slug: z.ZodString;
742
+ name: z.ZodString;
743
+ iconUrl: z.ZodOptional<z.ZodURL>;
744
+ visibility: z.ZodEnum<{
745
+ public: "public";
746
+ private: "private";
747
+ hidden: "hidden";
748
+ }>;
749
+ archived: z.ZodOptional<z.ZodBoolean>;
750
+ }, z.core.$strip>>;
751
+ createdAt: z.ZodISODateTime;
752
+ }, z.core.$strip>;
753
+ export type CommunitySuggestion = z.infer<typeof communitySuggestionSchema>;
754
+ export declare const communityCardPageSchema: z.ZodObject<{
755
+ items: z.ZodArray<z.ZodObject<{
756
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
757
+ slug: z.ZodString;
758
+ name: z.ZodString;
759
+ description: z.ZodString;
760
+ icon: z.ZodOptional<z.ZodObject<{
761
+ id: z.ZodString;
762
+ url: z.ZodURL;
763
+ width: z.ZodNumber;
764
+ height: z.ZodNumber;
765
+ variants: z.ZodArray<z.ZodObject<{
766
+ width: z.ZodNumber;
767
+ height: z.ZodNumber;
768
+ url: z.ZodURL;
769
+ }, z.core.$strip>>;
770
+ placeholder: z.ZodOptional<z.ZodString>;
771
+ }, z.core.$strip>>;
772
+ visibility: z.ZodEnum<{
773
+ public: "public";
774
+ private: "private";
775
+ hidden: "hidden";
776
+ }>;
777
+ status: z.ZodEnum<{
778
+ active: "active";
779
+ archived: "archived";
780
+ }>;
781
+ topics: z.ZodArray<z.ZodEnum<{
782
+ ai_ml: "ai_ml";
783
+ b2b_saas: "b2b_saas";
784
+ d2c: "d2c";
785
+ deeptech: "deeptech";
786
+ robotics: "robotics";
787
+ growth: "growth";
788
+ sales: "sales";
789
+ marketing: "marketing";
790
+ supply_chain: "supply_chain";
791
+ fundraising: "fundraising";
792
+ mentoring: "mentoring";
793
+ leadership: "leadership";
794
+ networking: "networking";
795
+ public_speaking: "public_speaking";
796
+ teaching: "teaching";
797
+ hiring_talent: "hiring_talent";
798
+ personal_branding: "personal_branding";
799
+ career_transition: "career_transition";
800
+ remote_work: "remote_work";
801
+ blockchain: "blockchain";
802
+ crypto_web3: "crypto_web3";
803
+ data_science: "data_science";
804
+ cybersecurity: "cybersecurity";
805
+ game_dev: "game_dev";
806
+ ux_design: "ux_design";
807
+ app_development: "app_development";
808
+ open_source: "open_source";
809
+ electronics: "electronics";
810
+ space_exploration: "space_exploration";
811
+ green_tech: "green_tech";
812
+ no_code: "no_code";
813
+ entrepreneurship: "entrepreneurship";
814
+ investing: "investing";
815
+ stock_trading: "stock_trading";
816
+ personal_finance: "personal_finance";
817
+ consulting: "consulting";
818
+ ecommerce: "ecommerce";
819
+ retail: "retail";
820
+ real_estate: "real_estate";
821
+ product_management: "product_management";
822
+ meditation: "meditation";
823
+ journaling: "journaling";
824
+ self_improvement: "self_improvement";
825
+ productivity: "productivity";
826
+ reading: "reading";
827
+ online_courses: "online_courses";
828
+ philosophy: "philosophy";
829
+ psychology: "psychology";
830
+ therapy: "therapy";
831
+ sleep_optimization: "sleep_optimization";
832
+ gym: "gym";
833
+ yoga: "yoga";
834
+ photography: "photography";
835
+ writing: "writing";
836
+ graphic_design: "graphic_design";
837
+ filmmaking: "filmmaking";
838
+ digital_art: "digital_art";
839
+ content_creation: "content_creation";
840
+ blogging: "blogging";
841
+ vlogging: "vlogging";
842
+ podcasts: "podcasts";
843
+ animation: "animation";
844
+ music_production: "music_production";
845
+ volunteering: "volunteering";
846
+ ngo_work: "ngo_work";
847
+ environmental: "environmental";
848
+ women_empowerment: "women_empowerment";
849
+ community_service: "community_service";
850
+ social_enterprise: "social_enterprise";
851
+ education_access: "education_access";
852
+ }>>;
853
+ memberCount: z.ZodNumber;
854
+ postCount: z.ZodNumber;
855
+ viewer: z.ZodOptional<z.ZodObject<{
856
+ status: z.ZodNullable<z.ZodEnum<{
857
+ active: "active";
858
+ requested: "requested";
859
+ invited: "invited";
860
+ }>>;
861
+ role: z.ZodNullable<z.ZodEnum<{
862
+ moderator: "moderator";
863
+ member: "member";
864
+ admin: "admin";
865
+ }>>;
866
+ }, z.core.$strip>>;
867
+ }, z.core.$strip>>;
868
+ nextCursor: z.ZodNullable<z.ZodString>;
869
+ }, z.core.$strip>;
870
+ export type CommunityCardPage = z.infer<typeof communityCardPageSchema>;
871
+ export declare const communityMemberPageSchema: z.ZodObject<{
872
+ items: z.ZodArray<z.ZodObject<{
873
+ userId: z.ZodString;
874
+ username: z.ZodString;
875
+ displayName: z.ZodString;
876
+ avatarUrl: z.ZodOptional<z.ZodURL>;
877
+ headline: z.ZodOptional<z.ZodString>;
878
+ role: z.ZodEnum<{
879
+ moderator: "moderator";
880
+ member: "member";
881
+ admin: "admin";
882
+ }>;
883
+ joinedAt: z.ZodISODateTime;
884
+ viewer: z.ZodOptional<z.ZodObject<{
885
+ canSetRole: z.ZodBoolean;
886
+ canRemove: z.ZodBoolean;
887
+ canBan: z.ZodBoolean;
888
+ }, z.core.$strip>>;
889
+ }, z.core.$strip>>;
890
+ nextCursor: z.ZodNullable<z.ZodString>;
891
+ }, z.core.$strip>;
892
+ export type CommunityMemberPage = z.infer<typeof communityMemberPageSchema>;
893
+ export declare const communityRequestPageSchema: z.ZodObject<{
894
+ items: z.ZodArray<z.ZodObject<{
895
+ member: z.ZodObject<{
896
+ userId: z.ZodString;
897
+ username: z.ZodString;
898
+ displayName: z.ZodString;
899
+ avatarUrl: z.ZodOptional<z.ZodURL>;
900
+ headline: z.ZodOptional<z.ZodString>;
901
+ }, z.core.$strip>;
902
+ requestedAt: z.ZodISODateTime;
903
+ }, z.core.$strip>>;
904
+ nextCursor: z.ZodNullable<z.ZodString>;
905
+ }, z.core.$strip>;
906
+ export type CommunityRequestPage = z.infer<typeof communityRequestPageSchema>;
907
+ export declare const communityPendingInvitePageSchema: z.ZodObject<{
908
+ items: z.ZodArray<z.ZodObject<{
909
+ member: z.ZodObject<{
910
+ userId: z.ZodString;
911
+ username: z.ZodString;
912
+ displayName: z.ZodString;
913
+ avatarUrl: z.ZodOptional<z.ZodURL>;
914
+ headline: z.ZodOptional<z.ZodString>;
915
+ }, z.core.$strip>;
916
+ invitedBy: z.ZodNullable<z.ZodObject<{
917
+ userId: z.ZodString;
918
+ username: z.ZodString;
919
+ displayName: z.ZodString;
920
+ avatarUrl: z.ZodOptional<z.ZodURL>;
921
+ headline: z.ZodOptional<z.ZodString>;
922
+ }, z.core.$strip>>;
923
+ invitedAt: z.ZodISODateTime;
924
+ }, z.core.$strip>>;
925
+ nextCursor: z.ZodNullable<z.ZodString>;
926
+ }, z.core.$strip>;
927
+ export type CommunityPendingInvitePage = z.infer<typeof communityPendingInvitePageSchema>;
928
+ export declare const communityBanPageSchema: z.ZodObject<{
929
+ items: z.ZodArray<z.ZodObject<{
930
+ member: z.ZodObject<{
931
+ userId: z.ZodString;
932
+ username: z.ZodString;
933
+ displayName: z.ZodString;
934
+ avatarUrl: z.ZodOptional<z.ZodURL>;
935
+ headline: z.ZodOptional<z.ZodString>;
936
+ }, z.core.$strip>;
937
+ bannedBy: z.ZodNullable<z.ZodObject<{
938
+ userId: z.ZodString;
939
+ username: z.ZodString;
940
+ displayName: z.ZodString;
941
+ avatarUrl: z.ZodOptional<z.ZodURL>;
942
+ headline: z.ZodOptional<z.ZodString>;
943
+ }, z.core.$strip>>;
944
+ bannedAt: z.ZodISODateTime;
945
+ reason: z.ZodOptional<z.ZodString>;
946
+ }, z.core.$strip>>;
947
+ nextCursor: z.ZodNullable<z.ZodString>;
948
+ }, z.core.$strip>;
949
+ export type CommunityBanPage = z.infer<typeof communityBanPageSchema>;
950
+ export declare const communitySuggestionPageSchema: z.ZodObject<{
951
+ items: z.ZodArray<z.ZodObject<{
952
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
953
+ suggestedBy: z.ZodNullable<z.ZodObject<{
954
+ userId: z.ZodString;
955
+ username: z.ZodString;
956
+ displayName: z.ZodString;
957
+ avatarUrl: z.ZodOptional<z.ZodURL>;
958
+ headline: z.ZodOptional<z.ZodString>;
959
+ }, z.core.$strip>>;
960
+ name: z.ZodString;
961
+ description: z.ZodString;
962
+ why: z.ZodOptional<z.ZodString>;
963
+ visibility: z.ZodEnum<{
964
+ public: "public";
965
+ private: "private";
966
+ hidden: "hidden";
967
+ }>;
968
+ topics: z.ZodArray<z.ZodEnum<{
969
+ ai_ml: "ai_ml";
970
+ b2b_saas: "b2b_saas";
971
+ d2c: "d2c";
972
+ deeptech: "deeptech";
973
+ robotics: "robotics";
974
+ growth: "growth";
975
+ sales: "sales";
976
+ marketing: "marketing";
977
+ supply_chain: "supply_chain";
978
+ fundraising: "fundraising";
979
+ mentoring: "mentoring";
980
+ leadership: "leadership";
981
+ networking: "networking";
982
+ public_speaking: "public_speaking";
983
+ teaching: "teaching";
984
+ hiring_talent: "hiring_talent";
985
+ personal_branding: "personal_branding";
986
+ career_transition: "career_transition";
987
+ remote_work: "remote_work";
988
+ blockchain: "blockchain";
989
+ crypto_web3: "crypto_web3";
990
+ data_science: "data_science";
991
+ cybersecurity: "cybersecurity";
992
+ game_dev: "game_dev";
993
+ ux_design: "ux_design";
994
+ app_development: "app_development";
995
+ open_source: "open_source";
996
+ electronics: "electronics";
997
+ space_exploration: "space_exploration";
998
+ green_tech: "green_tech";
999
+ no_code: "no_code";
1000
+ entrepreneurship: "entrepreneurship";
1001
+ investing: "investing";
1002
+ stock_trading: "stock_trading";
1003
+ personal_finance: "personal_finance";
1004
+ consulting: "consulting";
1005
+ ecommerce: "ecommerce";
1006
+ retail: "retail";
1007
+ real_estate: "real_estate";
1008
+ product_management: "product_management";
1009
+ meditation: "meditation";
1010
+ journaling: "journaling";
1011
+ self_improvement: "self_improvement";
1012
+ productivity: "productivity";
1013
+ reading: "reading";
1014
+ online_courses: "online_courses";
1015
+ philosophy: "philosophy";
1016
+ psychology: "psychology";
1017
+ therapy: "therapy";
1018
+ sleep_optimization: "sleep_optimization";
1019
+ gym: "gym";
1020
+ yoga: "yoga";
1021
+ photography: "photography";
1022
+ writing: "writing";
1023
+ graphic_design: "graphic_design";
1024
+ filmmaking: "filmmaking";
1025
+ digital_art: "digital_art";
1026
+ content_creation: "content_creation";
1027
+ blogging: "blogging";
1028
+ vlogging: "vlogging";
1029
+ podcasts: "podcasts";
1030
+ animation: "animation";
1031
+ music_production: "music_production";
1032
+ volunteering: "volunteering";
1033
+ ngo_work: "ngo_work";
1034
+ environmental: "environmental";
1035
+ women_empowerment: "women_empowerment";
1036
+ community_service: "community_service";
1037
+ social_enterprise: "social_enterprise";
1038
+ education_access: "education_access";
1039
+ }>>;
1040
+ status: z.ZodEnum<{
1041
+ open: "open";
1042
+ approved: "approved";
1043
+ declined: "declined";
1044
+ }>;
1045
+ decidedBy: z.ZodNullable<z.ZodObject<{
1046
+ userId: z.ZodString;
1047
+ username: z.ZodString;
1048
+ displayName: z.ZodString;
1049
+ avatarUrl: z.ZodOptional<z.ZodURL>;
1050
+ headline: z.ZodOptional<z.ZodString>;
1051
+ }, z.core.$strip>>;
1052
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
1053
+ declineReason: z.ZodOptional<z.ZodString>;
1054
+ community: z.ZodOptional<z.ZodObject<{
1055
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1056
+ slug: z.ZodString;
1057
+ name: z.ZodString;
1058
+ iconUrl: z.ZodOptional<z.ZodURL>;
1059
+ visibility: z.ZodEnum<{
1060
+ public: "public";
1061
+ private: "private";
1062
+ hidden: "hidden";
1063
+ }>;
1064
+ archived: z.ZodOptional<z.ZodBoolean>;
1065
+ }, z.core.$strip>>;
1066
+ createdAt: z.ZodISODateTime;
1067
+ }, z.core.$strip>>;
1068
+ nextCursor: z.ZodNullable<z.ZodString>;
1069
+ }, z.core.$strip>;
1070
+ export type CommunitySuggestionPage = z.infer<typeof communitySuggestionPageSchema>;
1071
+ /**
1072
+ * `GET /communities`: public and private communities that are not archived
1073
+ * (hidden ones never), most members first. `q` matches the start of the
1074
+ * name; an emptied box (`?q=`) is no search, never a 400. `topic` means "any of".
1075
+ */
1076
+ export declare const communityDiscoverQuerySchema: z.ZodObject<{
1077
+ limit: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>, unknown>;
1078
+ cursor: z.ZodOptional<z.ZodString>;
1079
+ q: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
1080
+ topic: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodEnum<{
1081
+ ai_ml: "ai_ml";
1082
+ b2b_saas: "b2b_saas";
1083
+ d2c: "d2c";
1084
+ deeptech: "deeptech";
1085
+ robotics: "robotics";
1086
+ growth: "growth";
1087
+ sales: "sales";
1088
+ marketing: "marketing";
1089
+ supply_chain: "supply_chain";
1090
+ fundraising: "fundraising";
1091
+ mentoring: "mentoring";
1092
+ leadership: "leadership";
1093
+ networking: "networking";
1094
+ public_speaking: "public_speaking";
1095
+ teaching: "teaching";
1096
+ hiring_talent: "hiring_talent";
1097
+ personal_branding: "personal_branding";
1098
+ career_transition: "career_transition";
1099
+ remote_work: "remote_work";
1100
+ blockchain: "blockchain";
1101
+ crypto_web3: "crypto_web3";
1102
+ data_science: "data_science";
1103
+ cybersecurity: "cybersecurity";
1104
+ game_dev: "game_dev";
1105
+ ux_design: "ux_design";
1106
+ app_development: "app_development";
1107
+ open_source: "open_source";
1108
+ electronics: "electronics";
1109
+ space_exploration: "space_exploration";
1110
+ green_tech: "green_tech";
1111
+ no_code: "no_code";
1112
+ entrepreneurship: "entrepreneurship";
1113
+ investing: "investing";
1114
+ stock_trading: "stock_trading";
1115
+ personal_finance: "personal_finance";
1116
+ consulting: "consulting";
1117
+ ecommerce: "ecommerce";
1118
+ retail: "retail";
1119
+ real_estate: "real_estate";
1120
+ product_management: "product_management";
1121
+ meditation: "meditation";
1122
+ journaling: "journaling";
1123
+ self_improvement: "self_improvement";
1124
+ productivity: "productivity";
1125
+ reading: "reading";
1126
+ online_courses: "online_courses";
1127
+ philosophy: "philosophy";
1128
+ psychology: "psychology";
1129
+ therapy: "therapy";
1130
+ sleep_optimization: "sleep_optimization";
1131
+ gym: "gym";
1132
+ yoga: "yoga";
1133
+ photography: "photography";
1134
+ writing: "writing";
1135
+ graphic_design: "graphic_design";
1136
+ filmmaking: "filmmaking";
1137
+ digital_art: "digital_art";
1138
+ content_creation: "content_creation";
1139
+ blogging: "blogging";
1140
+ vlogging: "vlogging";
1141
+ podcasts: "podcasts";
1142
+ animation: "animation";
1143
+ music_production: "music_production";
1144
+ volunteering: "volunteering";
1145
+ ngo_work: "ngo_work";
1146
+ environmental: "environmental";
1147
+ women_empowerment: "women_empowerment";
1148
+ community_service: "community_service";
1149
+ social_enterprise: "social_enterprise";
1150
+ education_access: "education_access";
1151
+ }>>>, unknown>;
1152
+ }, z.core.$strip>;
1153
+ export type CommunityDiscoverQuery = z.infer<typeof communityDiscoverQuerySchema>;
1154
+ export type CommunityDiscoverQueryInput = z.input<typeof communityDiscoverQuerySchema>;
1155
+ /** `GET /communities/:id/members`: everyone, or one role (`?role=admin`). */
1156
+ export declare const communityMembersQuerySchema: z.ZodObject<{
1157
+ limit: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>, unknown>;
1158
+ cursor: z.ZodOptional<z.ZodString>;
1159
+ role: z.ZodPreprocess<z.ZodOptional<z.ZodEnum<{
1160
+ moderator: "moderator";
1161
+ member: "member";
1162
+ admin: "admin";
1163
+ }>>, unknown>;
1164
+ }, z.core.$strip>;
1165
+ export type CommunityMembersQuery = z.infer<typeof communityMembersQuerySchema>;
1166
+ export type CommunityMembersQueryInput = z.input<typeof communityMembersQuerySchema>;
1167
+ /** `GET /community-suggestions` (staff): waiting ones by default, oldest first. */
1168
+ export declare const communitySuggestionsQuerySchema: z.ZodObject<{
1169
+ limit: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>, unknown>;
1170
+ cursor: z.ZodOptional<z.ZodString>;
1171
+ status: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
1172
+ open: "open";
1173
+ approved: "approved";
1174
+ declined: "declined";
1175
+ }>>, unknown>;
1176
+ }, z.core.$strip>;
1177
+ export type CommunitySuggestionsQuery = z.infer<typeof communitySuggestionsQuerySchema>;
1178
+ export type CommunitySuggestionsQueryInput = z.input<typeof communitySuggestionsQuerySchema>;
1179
+ export declare const communityParamsSchema: z.ZodObject<{
1180
+ communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1181
+ }, z.core.$strip>;
1182
+ export type CommunityParams = z.infer<typeof communityParamsSchema>;
1183
+ /** `/communities/:communityId/{members,requests,invites,bans}/:userId`. */
1184
+ export declare const communityMemberParamsSchema: z.ZodObject<{
1185
+ communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1186
+ userId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1187
+ }, z.core.$strip>;
1188
+ export type CommunityMemberParams = z.infer<typeof communityMemberParamsSchema>;
1189
+ /** `/communities/:communityId/{pins,content}/:contentId`. */
1190
+ export declare const communityContentParamsSchema: z.ZodObject<{
1191
+ communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1192
+ contentId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1193
+ }, z.core.$strip>;
1194
+ export type CommunityContentParams = z.infer<typeof communityContentParamsSchema>;
1195
+ /** `/communities/:communityId/comments/:commentId/hidden` (0.9.0). */
1196
+ export declare const communityCommentParamsSchema: z.ZodObject<{
1197
+ communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1198
+ commentId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1199
+ }, z.core.$strip>;
1200
+ export type CommunityCommentParams = z.infer<typeof communityCommentParamsSchema>;
1201
+ export declare const communitySuggestionParamsSchema: z.ZodObject<{
1202
+ suggestionId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1203
+ }, z.core.$strip>;
1204
+ export type CommunitySuggestionParams = z.infer<typeof communitySuggestionParamsSchema>;
1205
+ /**
1206
+ * `POST /communities` (managers, super admins and capability holders), and
1207
+ * the reviewer's edited version when approving a suggestion. The creator
1208
+ * becomes its first admin. A name a live PUBLIC or PRIVATE community has is
1209
+ * `COMMUNITY_NAME_TAKEN` (letter case ignored, runs of spaces read as one);
1210
+ * hidden communities' names are never compared, so no name probes for one.
1211
+ * Approving a private or hidden one invites its suggester. The icon is a
1212
+ * processed `community_icon` upload.
1213
+ */
1214
+ export declare const createCommunityBodySchema: z.ZodObject<{
1215
+ name: z.ZodString;
1216
+ description: z.ZodString;
1217
+ visibility: z.ZodEnum<{
1218
+ public: "public";
1219
+ private: "private";
1220
+ hidden: "hidden";
1221
+ }>;
1222
+ rules: z.ZodOptional<z.ZodArray<z.ZodString>>;
1223
+ topics: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1224
+ ai_ml: "ai_ml";
1225
+ b2b_saas: "b2b_saas";
1226
+ d2c: "d2c";
1227
+ deeptech: "deeptech";
1228
+ robotics: "robotics";
1229
+ growth: "growth";
1230
+ sales: "sales";
1231
+ marketing: "marketing";
1232
+ supply_chain: "supply_chain";
1233
+ fundraising: "fundraising";
1234
+ mentoring: "mentoring";
1235
+ leadership: "leadership";
1236
+ networking: "networking";
1237
+ public_speaking: "public_speaking";
1238
+ teaching: "teaching";
1239
+ hiring_talent: "hiring_talent";
1240
+ personal_branding: "personal_branding";
1241
+ career_transition: "career_transition";
1242
+ remote_work: "remote_work";
1243
+ blockchain: "blockchain";
1244
+ crypto_web3: "crypto_web3";
1245
+ data_science: "data_science";
1246
+ cybersecurity: "cybersecurity";
1247
+ game_dev: "game_dev";
1248
+ ux_design: "ux_design";
1249
+ app_development: "app_development";
1250
+ open_source: "open_source";
1251
+ electronics: "electronics";
1252
+ space_exploration: "space_exploration";
1253
+ green_tech: "green_tech";
1254
+ no_code: "no_code";
1255
+ entrepreneurship: "entrepreneurship";
1256
+ investing: "investing";
1257
+ stock_trading: "stock_trading";
1258
+ personal_finance: "personal_finance";
1259
+ consulting: "consulting";
1260
+ ecommerce: "ecommerce";
1261
+ retail: "retail";
1262
+ real_estate: "real_estate";
1263
+ product_management: "product_management";
1264
+ meditation: "meditation";
1265
+ journaling: "journaling";
1266
+ self_improvement: "self_improvement";
1267
+ productivity: "productivity";
1268
+ reading: "reading";
1269
+ online_courses: "online_courses";
1270
+ philosophy: "philosophy";
1271
+ psychology: "psychology";
1272
+ therapy: "therapy";
1273
+ sleep_optimization: "sleep_optimization";
1274
+ gym: "gym";
1275
+ yoga: "yoga";
1276
+ photography: "photography";
1277
+ writing: "writing";
1278
+ graphic_design: "graphic_design";
1279
+ filmmaking: "filmmaking";
1280
+ digital_art: "digital_art";
1281
+ content_creation: "content_creation";
1282
+ blogging: "blogging";
1283
+ vlogging: "vlogging";
1284
+ podcasts: "podcasts";
1285
+ animation: "animation";
1286
+ music_production: "music_production";
1287
+ volunteering: "volunteering";
1288
+ ngo_work: "ngo_work";
1289
+ environmental: "environmental";
1290
+ women_empowerment: "women_empowerment";
1291
+ community_service: "community_service";
1292
+ social_enterprise: "social_enterprise";
1293
+ education_access: "education_access";
1294
+ }>>>;
1295
+ iconMediaId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
1296
+ }, z.core.$strip>;
1297
+ export type CreateCommunityBody = z.infer<typeof createCommunityBodySchema>;
1298
+ /** `PATCH /communities/:id` (admins): only the keys that changed. Type and icon have their own routes. */
1299
+ export declare const updateCommunityBodySchema: z.ZodObject<{
1300
+ name: z.ZodOptional<z.ZodString>;
1301
+ description: z.ZodOptional<z.ZodString>;
1302
+ rules: z.ZodOptional<z.ZodArray<z.ZodString>>;
1303
+ topics: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1304
+ ai_ml: "ai_ml";
1305
+ b2b_saas: "b2b_saas";
1306
+ d2c: "d2c";
1307
+ deeptech: "deeptech";
1308
+ robotics: "robotics";
1309
+ growth: "growth";
1310
+ sales: "sales";
1311
+ marketing: "marketing";
1312
+ supply_chain: "supply_chain";
1313
+ fundraising: "fundraising";
1314
+ mentoring: "mentoring";
1315
+ leadership: "leadership";
1316
+ networking: "networking";
1317
+ public_speaking: "public_speaking";
1318
+ teaching: "teaching";
1319
+ hiring_talent: "hiring_talent";
1320
+ personal_branding: "personal_branding";
1321
+ career_transition: "career_transition";
1322
+ remote_work: "remote_work";
1323
+ blockchain: "blockchain";
1324
+ crypto_web3: "crypto_web3";
1325
+ data_science: "data_science";
1326
+ cybersecurity: "cybersecurity";
1327
+ game_dev: "game_dev";
1328
+ ux_design: "ux_design";
1329
+ app_development: "app_development";
1330
+ open_source: "open_source";
1331
+ electronics: "electronics";
1332
+ space_exploration: "space_exploration";
1333
+ green_tech: "green_tech";
1334
+ no_code: "no_code";
1335
+ entrepreneurship: "entrepreneurship";
1336
+ investing: "investing";
1337
+ stock_trading: "stock_trading";
1338
+ personal_finance: "personal_finance";
1339
+ consulting: "consulting";
1340
+ ecommerce: "ecommerce";
1341
+ retail: "retail";
1342
+ real_estate: "real_estate";
1343
+ product_management: "product_management";
1344
+ meditation: "meditation";
1345
+ journaling: "journaling";
1346
+ self_improvement: "self_improvement";
1347
+ productivity: "productivity";
1348
+ reading: "reading";
1349
+ online_courses: "online_courses";
1350
+ philosophy: "philosophy";
1351
+ psychology: "psychology";
1352
+ therapy: "therapy";
1353
+ sleep_optimization: "sleep_optimization";
1354
+ gym: "gym";
1355
+ yoga: "yoga";
1356
+ photography: "photography";
1357
+ writing: "writing";
1358
+ graphic_design: "graphic_design";
1359
+ filmmaking: "filmmaking";
1360
+ digital_art: "digital_art";
1361
+ content_creation: "content_creation";
1362
+ blogging: "blogging";
1363
+ vlogging: "vlogging";
1364
+ podcasts: "podcasts";
1365
+ animation: "animation";
1366
+ music_production: "music_production";
1367
+ volunteering: "volunteering";
1368
+ ngo_work: "ngo_work";
1369
+ environmental: "environmental";
1370
+ women_empowerment: "women_empowerment";
1371
+ community_service: "community_service";
1372
+ social_enterprise: "social_enterprise";
1373
+ education_access: "education_access";
1374
+ }>>>;
1375
+ }, z.core.$strip>;
1376
+ export type UpdateCommunityBody = z.infer<typeof updateCommunityBodySchema>;
1377
+ /** `PUT /communities/:id/icon`: a processed `community_icon` upload. The old icon's files are deleted. */
1378
+ export declare const setCommunityIconBodySchema: z.ZodObject<{
1379
+ mediaId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1380
+ }, z.core.$strip>;
1381
+ export type SetCommunityIconBody = z.infer<typeof setCommunityIconBodySchema>;
1382
+ /**
1383
+ * `PUT /communities/:id/visibility` (admins). A change that exposes what was
1384
+ * already posted (`communityChangeExposes`: toward public, or hidden to
1385
+ * private) needs `confirmExposure: true`, else `COMMUNITY_EXPOSURE_UNCONFIRMED`:
1386
+ * the web asks first, and a client cannot skip the question. Audited.
1387
+ */
1388
+ export declare const setCommunityVisibilityBodySchema: z.ZodObject<{
1389
+ visibility: z.ZodEnum<{
1390
+ public: "public";
1391
+ private: "private";
1392
+ hidden: "hidden";
1393
+ }>;
1394
+ confirmExposure: z.ZodOptional<z.ZodBoolean>;
1395
+ }, z.core.$strip>;
1396
+ export type SetCommunityVisibilityBody = z.infer<typeof setCommunityVisibilityBodySchema>;
1397
+ /** `PUT /communities/:id/status` (staff). Audited. */
1398
+ export declare const setCommunityStatusBodySchema: z.ZodObject<{
1399
+ status: z.ZodEnum<{
1400
+ active: "active";
1401
+ archived: "archived";
1402
+ }>;
1403
+ }, z.core.$strip>;
1404
+ export type SetCommunityStatusBody = z.infer<typeof setCommunityStatusBodySchema>;
1405
+ /**
1406
+ * `POST /communities/:id/invites` (moderators, private and hidden only;
1407
+ * a public community needs none: `COMMUNITY_INVITE_NOT_NEEDED`). Someone who
1408
+ * cannot join (not onboarded, paused, suspended, deleted) is
1409
+ * `COMMUNITY_MEMBER_NOT_INVITABLE`; banned, `COMMUNITY_MEMBER_BANNED`; already
1410
+ * a member, requested or invited, `COMMUNITY_ALREADY_MEMBER`.
1411
+ */
1412
+ export declare const inviteCommunityMemberBodySchema: z.ZodObject<{
1413
+ userId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1414
+ }, z.core.$strip>;
1415
+ export type InviteCommunityMemberBody = z.infer<typeof inviteCommunityMemberBodySchema>;
1416
+ /** `PUT /communities/:id/members/:userId/role` (admins). Never the last admin's own step down. */
1417
+ export declare const setCommunityMemberRoleBodySchema: z.ZodObject<{
1418
+ role: z.ZodEnum<{
1419
+ moderator: "moderator";
1420
+ member: "member";
1421
+ admin: "admin";
1422
+ }>;
1423
+ }, z.core.$strip>;
1424
+ export type SetCommunityMemberRoleBody = z.infer<typeof setCommunityMemberRoleBodySchema>;
1425
+ /** `POST /communities/:id/bans` (admins): removes them if active, and keeps them out. */
1426
+ export declare const banCommunityMemberBodySchema: z.ZodObject<{
1427
+ userId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1428
+ reason: z.ZodOptional<z.ZodString>;
1429
+ }, z.core.$strip>;
1430
+ export type BanCommunityMemberBody = z.infer<typeof banCommunityMemberBodySchema>;
1431
+ /**
1432
+ * `POST /communities/:id/pins` (moderators): pin one of the community's posts
1433
+ * or polls as an announcement (`COMMUNITY_PINS_FULL` past `COMMUNITY_PINS_MAX`).
1434
+ * `notifyMembers` (admins only) rings every active member's bell, at most once
1435
+ * per `COMMUNITY_ANNOUNCE_INTERVAL_MS` (`COMMUNITY_ANNOUNCE_TOO_SOON`).
1436
+ */
1437
+ export declare const pinCommunityContentBodySchema: z.ZodObject<{
1438
+ contentId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
1439
+ notifyMembers: z.ZodBoolean;
1440
+ }, z.core.$strip>;
1441
+ export type PinCommunityContentBody = z.infer<typeof pinCommunityContentBodySchema>;
1442
+ /**
1443
+ * `POST /community-suggestions`: any onboarded member, at most
1444
+ * `COMMUNITY_SUGGESTIONS_OPEN_MAX` waiting at once (`COMMUNITY_SUGGESTIONS_FULL`).
1445
+ */
1446
+ export declare const createCommunitySuggestionBodySchema: z.ZodObject<{
1447
+ name: z.ZodString;
1448
+ description: z.ZodString;
1449
+ why: z.ZodOptional<z.ZodString>;
1450
+ visibility: z.ZodEnum<{
1451
+ public: "public";
1452
+ private: "private";
1453
+ hidden: "hidden";
1454
+ }>;
1455
+ topics: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1456
+ ai_ml: "ai_ml";
1457
+ b2b_saas: "b2b_saas";
1458
+ d2c: "d2c";
1459
+ deeptech: "deeptech";
1460
+ robotics: "robotics";
1461
+ growth: "growth";
1462
+ sales: "sales";
1463
+ marketing: "marketing";
1464
+ supply_chain: "supply_chain";
1465
+ fundraising: "fundraising";
1466
+ mentoring: "mentoring";
1467
+ leadership: "leadership";
1468
+ networking: "networking";
1469
+ public_speaking: "public_speaking";
1470
+ teaching: "teaching";
1471
+ hiring_talent: "hiring_talent";
1472
+ personal_branding: "personal_branding";
1473
+ career_transition: "career_transition";
1474
+ remote_work: "remote_work";
1475
+ blockchain: "blockchain";
1476
+ crypto_web3: "crypto_web3";
1477
+ data_science: "data_science";
1478
+ cybersecurity: "cybersecurity";
1479
+ game_dev: "game_dev";
1480
+ ux_design: "ux_design";
1481
+ app_development: "app_development";
1482
+ open_source: "open_source";
1483
+ electronics: "electronics";
1484
+ space_exploration: "space_exploration";
1485
+ green_tech: "green_tech";
1486
+ no_code: "no_code";
1487
+ entrepreneurship: "entrepreneurship";
1488
+ investing: "investing";
1489
+ stock_trading: "stock_trading";
1490
+ personal_finance: "personal_finance";
1491
+ consulting: "consulting";
1492
+ ecommerce: "ecommerce";
1493
+ retail: "retail";
1494
+ real_estate: "real_estate";
1495
+ product_management: "product_management";
1496
+ meditation: "meditation";
1497
+ journaling: "journaling";
1498
+ self_improvement: "self_improvement";
1499
+ productivity: "productivity";
1500
+ reading: "reading";
1501
+ online_courses: "online_courses";
1502
+ philosophy: "philosophy";
1503
+ psychology: "psychology";
1504
+ therapy: "therapy";
1505
+ sleep_optimization: "sleep_optimization";
1506
+ gym: "gym";
1507
+ yoga: "yoga";
1508
+ photography: "photography";
1509
+ writing: "writing";
1510
+ graphic_design: "graphic_design";
1511
+ filmmaking: "filmmaking";
1512
+ digital_art: "digital_art";
1513
+ content_creation: "content_creation";
1514
+ blogging: "blogging";
1515
+ vlogging: "vlogging";
1516
+ podcasts: "podcasts";
1517
+ animation: "animation";
1518
+ music_production: "music_production";
1519
+ volunteering: "volunteering";
1520
+ ngo_work: "ngo_work";
1521
+ environmental: "environmental";
1522
+ women_empowerment: "women_empowerment";
1523
+ community_service: "community_service";
1524
+ social_enterprise: "social_enterprise";
1525
+ education_access: "education_access";
1526
+ }>>>;
1527
+ }, z.core.$strip>;
1528
+ export type CreateCommunitySuggestionBody = z.infer<typeof createCommunitySuggestionBodySchema>;
1529
+ /**
1530
+ * `POST /community-suggestions/:id/decline` (staff): the reason is shown to the
1531
+ * suggester. A decided suggestion is `COMMUNITY_SUGGESTION_DECIDED`.
1532
+ */
1533
+ export declare const declineCommunitySuggestionBodySchema: z.ZodObject<{
1534
+ reason: z.ZodString;
1535
+ }, z.core.$strip>;
1536
+ export type DeclineCommunitySuggestionBody = z.infer<typeof declineCommunitySuggestionBodySchema>;
1537
+ //# sourceMappingURL=communities.d.ts.map