blume 0.1.0 → 0.1.2

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 (106) hide show
  1. package/dist/cli/index.js +1213 -473
  2. package/dist/cli/index.js.map +33 -29
  3. package/dist/types/core/bridge.d.ts +24 -0
  4. package/dist/types/core/config.d.ts +35 -0
  5. package/dist/types/core/data.d.ts +129 -0
  6. package/dist/types/core/define-components.d.ts +27 -0
  7. package/dist/types/core/define-meta.d.ts +16 -0
  8. package/dist/types/core/deployment-env.d.ts +9 -0
  9. package/dist/types/core/diagnostics.d.ts +17 -0
  10. package/dist/types/core/i18n-ui.d.ts +500 -0
  11. package/dist/types/core/load-module.d.ts +7 -0
  12. package/dist/types/core/package-root.d.ts +17 -0
  13. package/dist/types/core/project.d.ts +9 -0
  14. package/dist/types/core/schema.d.ts +3461 -0
  15. package/dist/types/core/sources/types.d.ts +107 -0
  16. package/dist/types/core/types.d.ts +245 -0
  17. package/dist/types/core/ui-packs/ar.d.ts +3 -0
  18. package/dist/types/core/ui-packs/bg.d.ts +3 -0
  19. package/dist/types/core/ui-packs/bn.d.ts +3 -0
  20. package/dist/types/core/ui-packs/ca.d.ts +3 -0
  21. package/dist/types/core/ui-packs/cs.d.ts +3 -0
  22. package/dist/types/core/ui-packs/da.d.ts +3 -0
  23. package/dist/types/core/ui-packs/de.d.ts +3 -0
  24. package/dist/types/core/ui-packs/el.d.ts +3 -0
  25. package/dist/types/core/ui-packs/es.d.ts +3 -0
  26. package/dist/types/core/ui-packs/fa.d.ts +3 -0
  27. package/dist/types/core/ui-packs/fi.d.ts +3 -0
  28. package/dist/types/core/ui-packs/fr.d.ts +3 -0
  29. package/dist/types/core/ui-packs/he.d.ts +3 -0
  30. package/dist/types/core/ui-packs/hi.d.ts +3 -0
  31. package/dist/types/core/ui-packs/hr.d.ts +3 -0
  32. package/dist/types/core/ui-packs/hu.d.ts +3 -0
  33. package/dist/types/core/ui-packs/id.d.ts +3 -0
  34. package/dist/types/core/ui-packs/index.d.ts +13 -0
  35. package/dist/types/core/ui-packs/it.d.ts +3 -0
  36. package/dist/types/core/ui-packs/ja.d.ts +3 -0
  37. package/dist/types/core/ui-packs/ko.d.ts +3 -0
  38. package/dist/types/core/ui-packs/nl.d.ts +3 -0
  39. package/dist/types/core/ui-packs/no.d.ts +3 -0
  40. package/dist/types/core/ui-packs/pl.d.ts +3 -0
  41. package/dist/types/core/ui-packs/pt-br.d.ts +3 -0
  42. package/dist/types/core/ui-packs/pt.d.ts +3 -0
  43. package/dist/types/core/ui-packs/ro.d.ts +3 -0
  44. package/dist/types/core/ui-packs/ru.d.ts +3 -0
  45. package/dist/types/core/ui-packs/sk.d.ts +3 -0
  46. package/dist/types/core/ui-packs/sr.d.ts +3 -0
  47. package/dist/types/core/ui-packs/sv.d.ts +3 -0
  48. package/dist/types/core/ui-packs/th.d.ts +3 -0
  49. package/dist/types/core/ui-packs/tr.d.ts +3 -0
  50. package/dist/types/core/ui-packs/uk.d.ts +3 -0
  51. package/dist/types/core/ui-packs/vi.d.ts +3 -0
  52. package/dist/types/core/ui-packs/zh-tw.d.ts +3 -0
  53. package/dist/types/core/ui-packs/zh.d.ts +3 -0
  54. package/dist/types/core/version.d.ts +8 -0
  55. package/dist/types/index.d.ts +10 -0
  56. package/dist/types/migrate/mintlify/config.d.ts +2 -0
  57. package/dist/types/migrate/mintlify/i18n.d.ts +7 -0
  58. package/dist/types/theme/fonts.d.ts +163 -0
  59. package/docs/advanced/custom-pages.mdx +91 -10
  60. package/docs/configuration/index.mdx +19 -0
  61. package/docs/content/components.mdx +103 -1
  62. package/package.json +13 -3
  63. package/src/ai/llms.ts +1 -2
  64. package/src/astro/examples.ts +106 -0
  65. package/src/astro/generate.ts +300 -75
  66. package/src/astro/index.ts +1 -1
  67. package/src/astro/islands.ts +1 -1
  68. package/src/astro/pages.ts +59 -0
  69. package/src/astro/templates.ts +180 -22
  70. package/src/cli/commands/validate.ts +1 -0
  71. package/src/components/content/CodeBlock.astro +28 -0
  72. package/src/components/content/Component.astro +65 -0
  73. package/src/components/content/Diff.astro +44 -0
  74. package/src/components/content/Tab.astro +8 -2
  75. package/src/components/content/diff.ts +95 -0
  76. package/src/components/layout/Favicon.astro +11 -4
  77. package/src/components/layout/PageLayout.astro +173 -0
  78. package/src/components/layout/ReferenceLayout.astro +6 -1
  79. package/src/components/layout/RootLayout.astro +9 -5
  80. package/src/components/layout/head-scripts.ts +19 -0
  81. package/src/core/data.ts +128 -0
  82. package/src/core/frontmatter.ts +43 -0
  83. package/src/core/links.ts +26 -10
  84. package/src/core/schema.ts +8 -0
  85. package/src/core/sources/filesystem.ts +1 -1
  86. package/src/core/sources/mdx-remote.ts +1 -2
  87. package/src/core/sources/mintlify.ts +1 -1
  88. package/src/core/sources/normalize.ts +19 -3
  89. package/src/core/sources/notion.ts +1 -1
  90. package/src/core/sources/sanity.ts +1 -1
  91. package/src/core/tsconfig-aliases.ts +201 -0
  92. package/src/index.ts +12 -0
  93. package/src/markdown/index.ts +69 -0
  94. package/src/migrate/fumadocs/config.ts +53 -4
  95. package/src/migrate/fumadocs/content.ts +1 -1
  96. package/src/migrate/fumadocs/groups.ts +230 -0
  97. package/src/migrate/fumadocs/index.ts +104 -19
  98. package/src/migrate/fumadocs/meta.ts +140 -10
  99. package/src/migrate/mintlify/snippets.ts +2 -1
  100. package/src/migrate/mintlify/transform.ts +1 -2
  101. package/src/migrate/nextra/index.ts +1 -1
  102. package/src/migrate/shared.ts +98 -1
  103. package/src/migrate/starlight/index.ts +1 -1
  104. package/src/registry/eject.ts +57 -10
  105. package/src/search/documents.ts +1 -2
  106. package/src/theme/entry.ts +29 -0
@@ -0,0 +1,3461 @@
1
+ import { z } from "zod";
2
+ import type { ContentSource } from "./sources/types.ts";
3
+ declare const hydrationMode: z.ZodEnum<["load", "idle", "visible", "media", "only"]>;
4
+ export type HydrationMode = z.infer<typeof hydrationMode>;
5
+ /** Frontmatter accepted on any content page. */
6
+ declare const pageMetaBaseSchema: z.ZodObject<{
7
+ changelog: z.ZodOptional<z.ZodObject<{
8
+ category: z.ZodOptional<z.ZodString>;
9
+ date: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>>;
10
+ version: z.ZodOptional<z.ZodString>;
11
+ }, "strict", z.ZodTypeAny, {
12
+ date?: string | undefined;
13
+ category?: string | undefined;
14
+ version?: string | undefined;
15
+ }, {
16
+ date?: string | Date | undefined;
17
+ category?: string | undefined;
18
+ version?: string | undefined;
19
+ }>>;
20
+ /** Publish date for feed-backed content like blog/changelog. */
21
+ date: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>>;
22
+ deprecated: z.ZodDefault<z.ZodBoolean>;
23
+ description: z.ZodOptional<z.ZodString>;
24
+ draft: z.ZodDefault<z.ZodBoolean>;
25
+ groups: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
26
+ hidden: z.ZodDefault<z.ZodBoolean>;
27
+ hideApiMarker: z.ZodDefault<z.ZodBoolean>;
28
+ hideFooterPagination: z.ZodOptional<z.ZodBoolean>;
29
+ icon: z.ZodOptional<z.ZodString>;
30
+ iconType: z.ZodOptional<z.ZodString>;
31
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
32
+ /** Overrides the git-derived last-modified date when `lastModified` is on. */
33
+ lastModified: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>>;
34
+ mode: z.ZodOptional<z.ZodString>;
35
+ noindex: z.ZodDefault<z.ZodBoolean>;
36
+ public: z.ZodOptional<z.ZodBoolean>;
37
+ rss: z.ZodOptional<z.ZodBoolean>;
38
+ search: z.ZodDefault<z.ZodObject<{
39
+ boost: z.ZodOptional<z.ZodNumber>;
40
+ exclude: z.ZodDefault<z.ZodBoolean>;
41
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
42
+ }, "strict", z.ZodTypeAny, {
43
+ exclude: boolean;
44
+ boost?: number | undefined;
45
+ tags?: string[] | undefined;
46
+ }, {
47
+ boost?: number | undefined;
48
+ exclude?: boolean | undefined;
49
+ tags?: string[] | undefined;
50
+ }>>;
51
+ seo: z.ZodDefault<z.ZodObject<{
52
+ canonical: z.ZodOptional<z.ZodString>;
53
+ description: z.ZodOptional<z.ZodString>;
54
+ image: z.ZodOptional<z.ZodString>;
55
+ noindex: z.ZodDefault<z.ZodBoolean>;
56
+ title: z.ZodOptional<z.ZodString>;
57
+ }, "strict", z.ZodTypeAny, {
58
+ noindex: boolean;
59
+ title?: string | undefined;
60
+ canonical?: string | undefined;
61
+ description?: string | undefined;
62
+ image?: string | undefined;
63
+ }, {
64
+ title?: string | undefined;
65
+ canonical?: string | undefined;
66
+ description?: string | undefined;
67
+ image?: string | undefined;
68
+ noindex?: boolean | undefined;
69
+ }>>;
70
+ sidebar: z.ZodDefault<z.ZodObject<{
71
+ badge: z.ZodOptional<z.ZodString>;
72
+ hidden: z.ZodDefault<z.ZodBoolean>;
73
+ icon: z.ZodOptional<z.ZodString>;
74
+ label: z.ZodOptional<z.ZodString>;
75
+ order: z.ZodOptional<z.ZodNumber>;
76
+ }, "strict", z.ZodTypeAny, {
77
+ hidden: boolean;
78
+ label?: string | undefined;
79
+ badge?: string | undefined;
80
+ icon?: string | undefined;
81
+ order?: number | undefined;
82
+ }, {
83
+ label?: string | undefined;
84
+ badge?: string | undefined;
85
+ hidden?: boolean | undefined;
86
+ icon?: string | undefined;
87
+ order?: number | undefined;
88
+ }>>;
89
+ sidebarTitle: z.ZodOptional<z.ZodString>;
90
+ slug: z.ZodOptional<z.ZodString>;
91
+ tag: z.ZodOptional<z.ZodString>;
92
+ title: z.ZodOptional<z.ZodString>;
93
+ type: z.ZodDefault<z.ZodString>;
94
+ }, "strict", z.ZodTypeAny, {
95
+ type: string;
96
+ search: {
97
+ exclude: boolean;
98
+ boost?: number | undefined;
99
+ tags?: string[] | undefined;
100
+ };
101
+ hidden: boolean;
102
+ noindex: boolean;
103
+ deprecated: boolean;
104
+ draft: boolean;
105
+ hideApiMarker: boolean;
106
+ seo: {
107
+ noindex: boolean;
108
+ title?: string | undefined;
109
+ canonical?: string | undefined;
110
+ description?: string | undefined;
111
+ image?: string | undefined;
112
+ };
113
+ sidebar: {
114
+ hidden: boolean;
115
+ label?: string | undefined;
116
+ badge?: string | undefined;
117
+ icon?: string | undefined;
118
+ order?: number | undefined;
119
+ };
120
+ date?: string | undefined;
121
+ title?: string | undefined;
122
+ icon?: string | undefined;
123
+ description?: string | undefined;
124
+ changelog?: {
125
+ date?: string | undefined;
126
+ category?: string | undefined;
127
+ version?: string | undefined;
128
+ } | undefined;
129
+ groups?: string | string[] | undefined;
130
+ hideFooterPagination?: boolean | undefined;
131
+ iconType?: string | undefined;
132
+ keywords?: string[] | undefined;
133
+ lastModified?: string | undefined;
134
+ mode?: string | undefined;
135
+ public?: boolean | undefined;
136
+ rss?: boolean | undefined;
137
+ sidebarTitle?: string | undefined;
138
+ slug?: string | undefined;
139
+ tag?: string | undefined;
140
+ }, {
141
+ type?: string | undefined;
142
+ date?: string | Date | undefined;
143
+ title?: string | undefined;
144
+ search?: {
145
+ boost?: number | undefined;
146
+ exclude?: boolean | undefined;
147
+ tags?: string[] | undefined;
148
+ } | undefined;
149
+ hidden?: boolean | undefined;
150
+ icon?: string | undefined;
151
+ description?: string | undefined;
152
+ noindex?: boolean | undefined;
153
+ changelog?: {
154
+ date?: string | Date | undefined;
155
+ category?: string | undefined;
156
+ version?: string | undefined;
157
+ } | undefined;
158
+ deprecated?: boolean | undefined;
159
+ draft?: boolean | undefined;
160
+ groups?: string | string[] | undefined;
161
+ hideApiMarker?: boolean | undefined;
162
+ hideFooterPagination?: boolean | undefined;
163
+ iconType?: string | undefined;
164
+ keywords?: string[] | undefined;
165
+ lastModified?: string | Date | undefined;
166
+ mode?: string | undefined;
167
+ public?: boolean | undefined;
168
+ rss?: boolean | undefined;
169
+ seo?: {
170
+ title?: string | undefined;
171
+ canonical?: string | undefined;
172
+ description?: string | undefined;
173
+ image?: string | undefined;
174
+ noindex?: boolean | undefined;
175
+ } | undefined;
176
+ sidebar?: {
177
+ label?: string | undefined;
178
+ badge?: string | undefined;
179
+ hidden?: boolean | undefined;
180
+ icon?: string | undefined;
181
+ order?: number | undefined;
182
+ } | undefined;
183
+ sidebarTitle?: string | undefined;
184
+ slug?: string | undefined;
185
+ tag?: string | undefined;
186
+ }>;
187
+ export declare const pageMetaSchema: z.ZodObject<{
188
+ changelog: z.ZodOptional<z.ZodObject<{
189
+ category: z.ZodOptional<z.ZodString>;
190
+ date: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>>;
191
+ version: z.ZodOptional<z.ZodString>;
192
+ }, "strict", z.ZodTypeAny, {
193
+ date?: string | undefined;
194
+ category?: string | undefined;
195
+ version?: string | undefined;
196
+ }, {
197
+ date?: string | Date | undefined;
198
+ category?: string | undefined;
199
+ version?: string | undefined;
200
+ }>>;
201
+ /** Publish date for feed-backed content like blog/changelog. */
202
+ date: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>>;
203
+ deprecated: z.ZodDefault<z.ZodBoolean>;
204
+ description: z.ZodOptional<z.ZodString>;
205
+ draft: z.ZodDefault<z.ZodBoolean>;
206
+ groups: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
207
+ hidden: z.ZodDefault<z.ZodBoolean>;
208
+ hideApiMarker: z.ZodDefault<z.ZodBoolean>;
209
+ hideFooterPagination: z.ZodOptional<z.ZodBoolean>;
210
+ icon: z.ZodOptional<z.ZodString>;
211
+ iconType: z.ZodOptional<z.ZodString>;
212
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
213
+ /** Overrides the git-derived last-modified date when `lastModified` is on. */
214
+ lastModified: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodDate]>, string, string | Date>>;
215
+ mode: z.ZodOptional<z.ZodString>;
216
+ noindex: z.ZodDefault<z.ZodBoolean>;
217
+ public: z.ZodOptional<z.ZodBoolean>;
218
+ rss: z.ZodOptional<z.ZodBoolean>;
219
+ search: z.ZodDefault<z.ZodObject<{
220
+ boost: z.ZodOptional<z.ZodNumber>;
221
+ exclude: z.ZodDefault<z.ZodBoolean>;
222
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
223
+ }, "strict", z.ZodTypeAny, {
224
+ exclude: boolean;
225
+ boost?: number | undefined;
226
+ tags?: string[] | undefined;
227
+ }, {
228
+ boost?: number | undefined;
229
+ exclude?: boolean | undefined;
230
+ tags?: string[] | undefined;
231
+ }>>;
232
+ seo: z.ZodDefault<z.ZodObject<{
233
+ canonical: z.ZodOptional<z.ZodString>;
234
+ description: z.ZodOptional<z.ZodString>;
235
+ image: z.ZodOptional<z.ZodString>;
236
+ noindex: z.ZodDefault<z.ZodBoolean>;
237
+ title: z.ZodOptional<z.ZodString>;
238
+ }, "strict", z.ZodTypeAny, {
239
+ noindex: boolean;
240
+ title?: string | undefined;
241
+ canonical?: string | undefined;
242
+ description?: string | undefined;
243
+ image?: string | undefined;
244
+ }, {
245
+ title?: string | undefined;
246
+ canonical?: string | undefined;
247
+ description?: string | undefined;
248
+ image?: string | undefined;
249
+ noindex?: boolean | undefined;
250
+ }>>;
251
+ sidebar: z.ZodDefault<z.ZodObject<{
252
+ badge: z.ZodOptional<z.ZodString>;
253
+ hidden: z.ZodDefault<z.ZodBoolean>;
254
+ icon: z.ZodOptional<z.ZodString>;
255
+ label: z.ZodOptional<z.ZodString>;
256
+ order: z.ZodOptional<z.ZodNumber>;
257
+ }, "strict", z.ZodTypeAny, {
258
+ hidden: boolean;
259
+ label?: string | undefined;
260
+ badge?: string | undefined;
261
+ icon?: string | undefined;
262
+ order?: number | undefined;
263
+ }, {
264
+ label?: string | undefined;
265
+ badge?: string | undefined;
266
+ hidden?: boolean | undefined;
267
+ icon?: string | undefined;
268
+ order?: number | undefined;
269
+ }>>;
270
+ sidebarTitle: z.ZodOptional<z.ZodString>;
271
+ slug: z.ZodOptional<z.ZodString>;
272
+ tag: z.ZodOptional<z.ZodString>;
273
+ title: z.ZodOptional<z.ZodString>;
274
+ type: z.ZodDefault<z.ZodString>;
275
+ }, "strict", z.ZodTypeAny, {
276
+ type: string;
277
+ search: {
278
+ exclude: boolean;
279
+ boost?: number | undefined;
280
+ tags?: string[] | undefined;
281
+ };
282
+ hidden: boolean;
283
+ noindex: boolean;
284
+ deprecated: boolean;
285
+ draft: boolean;
286
+ hideApiMarker: boolean;
287
+ seo: {
288
+ noindex: boolean;
289
+ title?: string | undefined;
290
+ canonical?: string | undefined;
291
+ description?: string | undefined;
292
+ image?: string | undefined;
293
+ };
294
+ sidebar: {
295
+ hidden: boolean;
296
+ label?: string | undefined;
297
+ badge?: string | undefined;
298
+ icon?: string | undefined;
299
+ order?: number | undefined;
300
+ };
301
+ date?: string | undefined;
302
+ title?: string | undefined;
303
+ icon?: string | undefined;
304
+ description?: string | undefined;
305
+ changelog?: {
306
+ date?: string | undefined;
307
+ category?: string | undefined;
308
+ version?: string | undefined;
309
+ } | undefined;
310
+ groups?: string | string[] | undefined;
311
+ hideFooterPagination?: boolean | undefined;
312
+ iconType?: string | undefined;
313
+ keywords?: string[] | undefined;
314
+ lastModified?: string | undefined;
315
+ mode?: string | undefined;
316
+ public?: boolean | undefined;
317
+ rss?: boolean | undefined;
318
+ sidebarTitle?: string | undefined;
319
+ slug?: string | undefined;
320
+ tag?: string | undefined;
321
+ }, {
322
+ type?: string | undefined;
323
+ date?: string | Date | undefined;
324
+ title?: string | undefined;
325
+ search?: {
326
+ boost?: number | undefined;
327
+ exclude?: boolean | undefined;
328
+ tags?: string[] | undefined;
329
+ } | undefined;
330
+ hidden?: boolean | undefined;
331
+ icon?: string | undefined;
332
+ description?: string | undefined;
333
+ noindex?: boolean | undefined;
334
+ changelog?: {
335
+ date?: string | Date | undefined;
336
+ category?: string | undefined;
337
+ version?: string | undefined;
338
+ } | undefined;
339
+ deprecated?: boolean | undefined;
340
+ draft?: boolean | undefined;
341
+ groups?: string | string[] | undefined;
342
+ hideApiMarker?: boolean | undefined;
343
+ hideFooterPagination?: boolean | undefined;
344
+ iconType?: string | undefined;
345
+ keywords?: string[] | undefined;
346
+ lastModified?: string | Date | undefined;
347
+ mode?: string | undefined;
348
+ public?: boolean | undefined;
349
+ rss?: boolean | undefined;
350
+ seo?: {
351
+ title?: string | undefined;
352
+ canonical?: string | undefined;
353
+ description?: string | undefined;
354
+ image?: string | undefined;
355
+ noindex?: boolean | undefined;
356
+ } | undefined;
357
+ sidebar?: {
358
+ label?: string | undefined;
359
+ badge?: string | undefined;
360
+ hidden?: boolean | undefined;
361
+ icon?: string | undefined;
362
+ order?: number | undefined;
363
+ } | undefined;
364
+ sidebarTitle?: string | undefined;
365
+ slug?: string | undefined;
366
+ tag?: string | undefined;
367
+ }>;
368
+ export type PageMeta = z.infer<typeof pageMetaBaseSchema>;
369
+ export type PageMetaInput = z.input<typeof pageMetaBaseSchema>;
370
+ /**
371
+ * How a sidebar group renders:
372
+ * - `flat`: a non-collapsible header with its items listed beneath (default).
373
+ * - `group`: a collapsible `<details>` disclosure.
374
+ * - `page`: a single row that drills into a sub-panel showing only this group's
375
+ * items, with a back arrow at the top.
376
+ */
377
+ declare const sidebarDisplaySchema: z.ZodEnum<["flat", "group", "page"]>;
378
+ export type SidebarDisplay = z.infer<typeof sidebarDisplaySchema>;
379
+ export declare const folderMetaSchema: z.ZodObject<{
380
+ collapsed: z.ZodOptional<z.ZodBoolean>;
381
+ display: z.ZodOptional<z.ZodEnum<["flat", "group", "page"]>>;
382
+ icon: z.ZodOptional<z.ZodString>;
383
+ order: z.ZodOptional<z.ZodNumber>;
384
+ /** Explicit child ordering by slug segment (without numeric prefix). */
385
+ pages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
386
+ title: z.ZodOptional<z.ZodString>;
387
+ }, "strict", z.ZodTypeAny, {
388
+ display?: "flat" | "page" | "group" | undefined;
389
+ title?: string | undefined;
390
+ icon?: string | undefined;
391
+ order?: number | undefined;
392
+ collapsed?: boolean | undefined;
393
+ pages?: string[] | undefined;
394
+ }, {
395
+ display?: "flat" | "page" | "group" | undefined;
396
+ title?: string | undefined;
397
+ icon?: string | undefined;
398
+ order?: number | undefined;
399
+ collapsed?: boolean | undefined;
400
+ pages?: string[] | undefined;
401
+ }>;
402
+ export type FolderMeta = z.infer<typeof folderMetaSchema>;
403
+ /** A single configured content source. */
404
+ declare const contentSourceSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
405
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
406
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
407
+ /** Namespaces the source's routes under `/<prefix>/`. */
408
+ prefix: z.ZodOptional<z.ZodString>;
409
+ root: z.ZodDefault<z.ZodString>;
410
+ type: z.ZodLiteral<"filesystem">;
411
+ }, "strict", z.ZodTypeAny, {
412
+ type: "filesystem";
413
+ exclude: string[];
414
+ include: string[];
415
+ root: string;
416
+ prefix?: string | undefined;
417
+ }, {
418
+ type: "filesystem";
419
+ exclude?: string[] | undefined;
420
+ include?: string[] | undefined;
421
+ prefix?: string | undefined;
422
+ root?: string | undefined;
423
+ }>, z.ZodObject<{
424
+ /** Explicit list of source-relative file paths to fetch from `url`. */
425
+ files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
426
+ /** Enumerate a GitHub repo subtree via the git-trees API. */
427
+ github: z.ZodOptional<z.ZodObject<{
428
+ owner: z.ZodString;
429
+ path: z.ZodDefault<z.ZodString>;
430
+ ref: z.ZodDefault<z.ZodString>;
431
+ repo: z.ZodString;
432
+ }, "strict", z.ZodTypeAny, {
433
+ path: string;
434
+ owner: string;
435
+ ref: string;
436
+ repo: string;
437
+ }, {
438
+ owner: string;
439
+ repo: string;
440
+ path?: string | undefined;
441
+ ref?: string | undefined;
442
+ }>>;
443
+ /** Glob patterns applied to enumerated refs. */
444
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
445
+ /** Opt-in dev polling interval (seconds); omit to freeze for the session. */
446
+ pollInterval: z.ZodOptional<z.ZodNumber>;
447
+ /** Namespaces the source's routes under `/<prefix>/`. */
448
+ prefix: z.ZodOptional<z.ZodString>;
449
+ type: z.ZodLiteral<"mdx-remote">;
450
+ /** Raw base URL, e.g. `https://raw.githubusercontent.com/acme/sdk/main/docs`. */
451
+ url: z.ZodOptional<z.ZodString>;
452
+ }, "strict", z.ZodTypeAny, {
453
+ type: "mdx-remote";
454
+ include: string[];
455
+ url?: string | undefined;
456
+ prefix?: string | undefined;
457
+ files?: string[] | undefined;
458
+ github?: {
459
+ path: string;
460
+ owner: string;
461
+ ref: string;
462
+ repo: string;
463
+ } | undefined;
464
+ pollInterval?: number | undefined;
465
+ }, {
466
+ type: "mdx-remote";
467
+ url?: string | undefined;
468
+ include?: string[] | undefined;
469
+ prefix?: string | undefined;
470
+ files?: string[] | undefined;
471
+ github?: {
472
+ owner: string;
473
+ repo: string;
474
+ path?: string | undefined;
475
+ ref?: string | undefined;
476
+ } | undefined;
477
+ pollInterval?: number | undefined;
478
+ }>, z.ZodObject<{
479
+ /** Sanity API version (a date); default `2024-01-01`. */
480
+ apiVersion: z.ZodOptional<z.ZodString>;
481
+ dataset: z.ZodString;
482
+ /** Field paths mapping a document onto Blume meta + body. */
483
+ fields: z.ZodOptional<z.ZodObject<{
484
+ body: z.ZodOptional<z.ZodString>;
485
+ description: z.ZodOptional<z.ZodString>;
486
+ lastModified: z.ZodOptional<z.ZodString>;
487
+ slug: z.ZodOptional<z.ZodString>;
488
+ title: z.ZodOptional<z.ZodString>;
489
+ }, "strict", z.ZodTypeAny, {
490
+ body?: string | undefined;
491
+ title?: string | undefined;
492
+ description?: string | undefined;
493
+ lastModified?: string | undefined;
494
+ slug?: string | undefined;
495
+ }, {
496
+ body?: string | undefined;
497
+ title?: string | undefined;
498
+ description?: string | undefined;
499
+ lastModified?: string | undefined;
500
+ slug?: string | undefined;
501
+ }>>;
502
+ /** Opt-in dev polling interval (seconds); omit to freeze for the session. */
503
+ pollInterval: z.ZodOptional<z.ZodNumber>;
504
+ prefix: z.ZodOptional<z.ZodString>;
505
+ projectId: z.ZodString;
506
+ /** GROQ query selecting the documents to import. */
507
+ query: z.ZodString;
508
+ type: z.ZodLiteral<"sanity">;
509
+ }, "strip", z.ZodTypeAny, {
510
+ type: "sanity";
511
+ dataset: string;
512
+ projectId: string;
513
+ query: string;
514
+ prefix?: string | undefined;
515
+ pollInterval?: number | undefined;
516
+ apiVersion?: string | undefined;
517
+ fields?: {
518
+ body?: string | undefined;
519
+ title?: string | undefined;
520
+ description?: string | undefined;
521
+ lastModified?: string | undefined;
522
+ slug?: string | undefined;
523
+ } | undefined;
524
+ }, {
525
+ type: "sanity";
526
+ dataset: string;
527
+ projectId: string;
528
+ query: string;
529
+ prefix?: string | undefined;
530
+ pollInterval?: number | undefined;
531
+ apiVersion?: string | undefined;
532
+ fields?: {
533
+ body?: string | undefined;
534
+ title?: string | undefined;
535
+ description?: string | undefined;
536
+ lastModified?: string | undefined;
537
+ slug?: string | undefined;
538
+ } | undefined;
539
+ }>, z.ZodObject<{
540
+ database: z.ZodString;
541
+ /** Opt-in dev polling interval (seconds); omit to freeze for the session. */
542
+ pollInterval: z.ZodOptional<z.ZodNumber>;
543
+ prefix: z.ZodOptional<z.ZodString>;
544
+ /** Notion property names mapped onto Blume meta. */
545
+ properties: z.ZodOptional<z.ZodObject<{
546
+ description: z.ZodOptional<z.ZodString>;
547
+ order: z.ZodOptional<z.ZodString>;
548
+ slug: z.ZodOptional<z.ZodString>;
549
+ status: z.ZodOptional<z.ZodString>;
550
+ title: z.ZodOptional<z.ZodString>;
551
+ }, "strict", z.ZodTypeAny, {
552
+ status?: string | undefined;
553
+ title?: string | undefined;
554
+ order?: string | undefined;
555
+ description?: string | undefined;
556
+ slug?: string | undefined;
557
+ }, {
558
+ status?: string | undefined;
559
+ title?: string | undefined;
560
+ order?: string | undefined;
561
+ description?: string | undefined;
562
+ slug?: string | undefined;
563
+ }>>;
564
+ /** Status value treated as published; others map to `draft`. Default `Published`. */
565
+ publishedValue: z.ZodOptional<z.ZodString>;
566
+ type: z.ZodLiteral<"notion">;
567
+ }, "strip", z.ZodTypeAny, {
568
+ type: "notion";
569
+ database: string;
570
+ prefix?: string | undefined;
571
+ pollInterval?: number | undefined;
572
+ properties?: {
573
+ status?: string | undefined;
574
+ title?: string | undefined;
575
+ order?: string | undefined;
576
+ description?: string | undefined;
577
+ slug?: string | undefined;
578
+ } | undefined;
579
+ publishedValue?: string | undefined;
580
+ }, {
581
+ type: "notion";
582
+ database: string;
583
+ prefix?: string | undefined;
584
+ pollInterval?: number | undefined;
585
+ properties?: {
586
+ status?: string | undefined;
587
+ title?: string | undefined;
588
+ order?: string | undefined;
589
+ description?: string | undefined;
590
+ slug?: string | undefined;
591
+ } | undefined;
592
+ publishedValue?: string | undefined;
593
+ }>, z.ZodObject<{
594
+ /** Absolute path of the `docs.json`/`mint.json`, watched for changes in dev. */
595
+ configFile: z.ZodOptional<z.ZodString>;
596
+ /** Patterns excluded from page discovery (Mintlify defaults are merged in). */
597
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
598
+ /** Glob patterns for Mintlify content files. */
599
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
600
+ /** Namespaces the source's routes under `/<prefix>/`. */
601
+ prefix: z.ZodOptional<z.ZodString>;
602
+ /** Content root, absolute or relative to the project root (Mintlify: `.`). */
603
+ root: z.ZodDefault<z.ZodString>;
604
+ type: z.ZodLiteral<"mintlify">;
605
+ /** `docs.json` variables, inlined into content (`{{name}}`) at scan time. */
606
+ variables: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
607
+ }, "strict", z.ZodTypeAny, {
608
+ type: "mintlify";
609
+ exclude: string[];
610
+ include: string[];
611
+ root: string;
612
+ variables: Record<string, string>;
613
+ prefix?: string | undefined;
614
+ configFile?: string | undefined;
615
+ }, {
616
+ type: "mintlify";
617
+ exclude?: string[] | undefined;
618
+ include?: string[] | undefined;
619
+ prefix?: string | undefined;
620
+ root?: string | undefined;
621
+ configFile?: string | undefined;
622
+ variables?: Record<string, string> | undefined;
623
+ }>, z.ZodObject<{
624
+ source: z.ZodType<ContentSource, z.ZodTypeDef, ContentSource>;
625
+ type: z.ZodLiteral<"custom">;
626
+ }, "strip", z.ZodTypeAny, {
627
+ type: "custom";
628
+ source: ContentSource;
629
+ }, {
630
+ type: "custom";
631
+ source: ContentSource;
632
+ }>]>;
633
+ /** A resolved content-source config entry (post-defaults). */
634
+ export type ContentSourceConfig = z.infer<typeof contentSourceSchema>;
635
+ declare const directoryModeSchema: z.ZodEnum<["accordion", "card", "none"]>;
636
+ export type DirectoryMode = z.infer<typeof directoryModeSchema>;
637
+ /** A node in an explicit sidebar config: a page reference or a group/link. */
638
+ export type SidebarItemConfig = string | {
639
+ label: string;
640
+ badge?: string;
641
+ directory?: DirectoryMode;
642
+ display?: SidebarDisplay;
643
+ href?: string;
644
+ icon?: string;
645
+ collapsed?: boolean;
646
+ items?: SidebarItemConfig[];
647
+ root?: string;
648
+ };
649
+ export declare const searchProviders: readonly ["orama", "pagefind", "flexsearch", "algolia", "orama-cloud", "typesense", "mixedbread", "none"];
650
+ /** Ask AI backends. `gateway` (default) routes through the Vercel AI Gateway. */
651
+ export declare const askAiProviders: readonly ["gateway", "openrouter", "llmgateway", "inkeep", "openai-compatible"];
652
+ declare const aiConfigSchema: z.ZodObject<{
653
+ ask: z.ZodOptional<z.ZodEffects<z.ZodObject<{
654
+ apiKeyEnv: z.ZodOptional<z.ZodString>;
655
+ baseUrl: z.ZodOptional<z.ZodString>;
656
+ enabled: z.ZodDefault<z.ZodBoolean>;
657
+ model: z.ZodDefault<z.ZodString>;
658
+ provider: z.ZodDefault<z.ZodEnum<["gateway", "openrouter", "llmgateway", "inkeep", "openai-compatible"]>>;
659
+ }, "strict", z.ZodTypeAny, {
660
+ provider: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible";
661
+ enabled: boolean;
662
+ model: string;
663
+ apiKeyEnv?: string | undefined;
664
+ baseUrl?: string | undefined;
665
+ }, {
666
+ provider?: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible" | undefined;
667
+ apiKeyEnv?: string | undefined;
668
+ baseUrl?: string | undefined;
669
+ enabled?: boolean | undefined;
670
+ model?: string | undefined;
671
+ }>, {
672
+ provider: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible";
673
+ enabled: boolean;
674
+ model: string;
675
+ apiKeyEnv?: string | undefined;
676
+ baseUrl?: string | undefined;
677
+ }, {
678
+ provider?: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible" | undefined;
679
+ apiKeyEnv?: string | undefined;
680
+ baseUrl?: string | undefined;
681
+ enabled?: boolean | undefined;
682
+ model?: string | undefined;
683
+ }>>;
684
+ llmsTxt: z.ZodDefault<z.ZodBoolean>;
685
+ }, "strict", z.ZodTypeAny, {
686
+ llmsTxt: boolean;
687
+ ask?: {
688
+ provider: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible";
689
+ enabled: boolean;
690
+ model: string;
691
+ apiKeyEnv?: string | undefined;
692
+ baseUrl?: string | undefined;
693
+ } | undefined;
694
+ }, {
695
+ ask?: {
696
+ provider?: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible" | undefined;
697
+ apiKeyEnv?: string | undefined;
698
+ baseUrl?: string | undefined;
699
+ enabled?: boolean | undefined;
700
+ model?: string | undefined;
701
+ } | undefined;
702
+ llmsTxt?: boolean | undefined;
703
+ }>;
704
+ export type AskAiProvider = (typeof askAiProviders)[number];
705
+ export type AskAiConfig = NonNullable<z.infer<typeof aiConfigSchema>["ask"]>;
706
+ /** A configured locale: ISO-ish code plus display metadata for the switcher. */
707
+ declare const localeSchema: z.ZodObject<{
708
+ code: z.ZodString;
709
+ /** Text direction; drives `<html dir>` and a future RTL pass. */
710
+ dir: z.ZodDefault<z.ZodEnum<["ltr", "rtl"]>>;
711
+ label: z.ZodString;
712
+ }, "strict", z.ZodTypeAny, {
713
+ code: string;
714
+ label: string;
715
+ dir: "ltr" | "rtl";
716
+ }, {
717
+ code: string;
718
+ label: string;
719
+ dir?: "ltr" | "rtl" | undefined;
720
+ }>;
721
+ /**
722
+ * Internationalization. Opt-in: when absent, Blume is single-locale and behaves
723
+ * exactly as before. The default locale lives at the content root; other locales
724
+ * are top-level directories named by `code` (the `dir` parser).
725
+ */
726
+ declare const i18nConfigSchema: z.ZodEffects<z.ZodObject<{
727
+ defaultLocale: z.ZodDefault<z.ZodString>;
728
+ /** Locale rendered for a missing translation; `null` disables fallback. */
729
+ fallbackLocale: z.ZodOptional<z.ZodNullable<z.ZodString>>;
730
+ /** Drop the URL prefix for the default locale (`/`, `/fr/…`). Static-safe. */
731
+ hideDefaultLocalePrefix: z.ZodDefault<z.ZodBoolean>;
732
+ locales: z.ZodArray<z.ZodObject<{
733
+ code: z.ZodString;
734
+ /** Text direction; drives `<html dir>` and a future RTL pass. */
735
+ dir: z.ZodDefault<z.ZodEnum<["ltr", "rtl"]>>;
736
+ label: z.ZodString;
737
+ }, "strict", z.ZodTypeAny, {
738
+ code: string;
739
+ label: string;
740
+ dir: "ltr" | "rtl";
741
+ }, {
742
+ code: string;
743
+ label: string;
744
+ dir?: "ltr" | "rtl" | undefined;
745
+ }>, "many">;
746
+ /** `"dir"`: locale directories (`fr/page.mdx`). `"dot"`: filename suffix (`page.fr.mdx`). */
747
+ parser: z.ZodDefault<z.ZodEnum<["dir", "dot"]>>;
748
+ /** Per-locale UI string overrides: `{ fr: { search: { button: "…" } } }`. */
749
+ ui: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>>;
750
+ }, "strict", z.ZodTypeAny, {
751
+ defaultLocale: string;
752
+ hideDefaultLocalePrefix: boolean;
753
+ locales: {
754
+ code: string;
755
+ label: string;
756
+ dir: "ltr" | "rtl";
757
+ }[];
758
+ parser: "dir" | "dot";
759
+ fallbackLocale?: string | null | undefined;
760
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
761
+ }, {
762
+ locales: {
763
+ code: string;
764
+ label: string;
765
+ dir?: "ltr" | "rtl" | undefined;
766
+ }[];
767
+ defaultLocale?: string | undefined;
768
+ fallbackLocale?: string | null | undefined;
769
+ hideDefaultLocalePrefix?: boolean | undefined;
770
+ parser?: "dir" | "dot" | undefined;
771
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
772
+ }>, {
773
+ defaultLocale: string;
774
+ hideDefaultLocalePrefix: boolean;
775
+ locales: {
776
+ code: string;
777
+ label: string;
778
+ dir: "ltr" | "rtl";
779
+ }[];
780
+ parser: "dir" | "dot";
781
+ fallbackLocale?: string | null | undefined;
782
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
783
+ }, {
784
+ locales: {
785
+ code: string;
786
+ label: string;
787
+ dir?: "ltr" | "rtl" | undefined;
788
+ }[];
789
+ defaultLocale?: string | undefined;
790
+ fallbackLocale?: string | null | undefined;
791
+ hideDefaultLocalePrefix?: boolean | undefined;
792
+ parser?: "dir" | "dot" | undefined;
793
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
794
+ }>;
795
+ /**
796
+ * A single spec rendered by the API reference (Scalar). `spec` is a local path
797
+ * or an `http(s)` URL; Scalar auto-detects OpenAPI vs AsyncAPI documents.
798
+ */
799
+ declare const openapiSourceSchema: z.ZodObject<{
800
+ /** Nav/section label for this source. */
801
+ label: z.ZodOptional<z.ZodString>;
802
+ /** Per-source route; defaults to the block's `route` (or a derived path). */
803
+ route: z.ZodOptional<z.ZodString>;
804
+ /** Local path or `http(s)` URL to the spec. */
805
+ spec: z.ZodString;
806
+ }, "strict", z.ZodTypeAny, {
807
+ spec: string;
808
+ label?: string | undefined;
809
+ route?: string | undefined;
810
+ }, {
811
+ spec: string;
812
+ label?: string | undefined;
813
+ route?: string | undefined;
814
+ }>;
815
+ export type OpenApiSource = z.infer<typeof openapiSourceSchema>;
816
+ /** Full user-facing config schema. All fields optional with defaults. */
817
+ export declare const blumeConfigSchema: z.ZodObject<{
818
+ ai: z.ZodDefault<z.ZodObject<{
819
+ ask: z.ZodOptional<z.ZodEffects<z.ZodObject<{
820
+ apiKeyEnv: z.ZodOptional<z.ZodString>;
821
+ baseUrl: z.ZodOptional<z.ZodString>;
822
+ enabled: z.ZodDefault<z.ZodBoolean>;
823
+ model: z.ZodDefault<z.ZodString>;
824
+ provider: z.ZodDefault<z.ZodEnum<["gateway", "openrouter", "llmgateway", "inkeep", "openai-compatible"]>>;
825
+ }, "strict", z.ZodTypeAny, {
826
+ provider: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible";
827
+ enabled: boolean;
828
+ model: string;
829
+ apiKeyEnv?: string | undefined;
830
+ baseUrl?: string | undefined;
831
+ }, {
832
+ provider?: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible" | undefined;
833
+ apiKeyEnv?: string | undefined;
834
+ baseUrl?: string | undefined;
835
+ enabled?: boolean | undefined;
836
+ model?: string | undefined;
837
+ }>, {
838
+ provider: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible";
839
+ enabled: boolean;
840
+ model: string;
841
+ apiKeyEnv?: string | undefined;
842
+ baseUrl?: string | undefined;
843
+ }, {
844
+ provider?: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible" | undefined;
845
+ apiKeyEnv?: string | undefined;
846
+ baseUrl?: string | undefined;
847
+ enabled?: boolean | undefined;
848
+ model?: string | undefined;
849
+ }>>;
850
+ llmsTxt: z.ZodDefault<z.ZodBoolean>;
851
+ }, "strict", z.ZodTypeAny, {
852
+ llmsTxt: boolean;
853
+ ask?: {
854
+ provider: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible";
855
+ enabled: boolean;
856
+ model: string;
857
+ apiKeyEnv?: string | undefined;
858
+ baseUrl?: string | undefined;
859
+ } | undefined;
860
+ }, {
861
+ ask?: {
862
+ provider?: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible" | undefined;
863
+ apiKeyEnv?: string | undefined;
864
+ baseUrl?: string | undefined;
865
+ enabled?: boolean | undefined;
866
+ model?: string | undefined;
867
+ } | undefined;
868
+ llmsTxt?: boolean | undefined;
869
+ }>>;
870
+ analytics: z.ZodOptional<z.ZodObject<{
871
+ posthog: z.ZodOptional<z.ZodObject<{
872
+ host: z.ZodOptional<z.ZodString>;
873
+ key: z.ZodString;
874
+ }, "strict", z.ZodTypeAny, {
875
+ key: string;
876
+ host?: string | undefined;
877
+ }, {
878
+ key: string;
879
+ host?: string | undefined;
880
+ }>>;
881
+ scripts: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
882
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
883
+ content: z.ZodOptional<z.ZodString>;
884
+ src: z.ZodOptional<z.ZodString>;
885
+ strategy: z.ZodOptional<z.ZodEnum<["async", "defer"]>>;
886
+ }, "strict", z.ZodTypeAny, {
887
+ content?: string | undefined;
888
+ attributes?: Record<string, string> | undefined;
889
+ src?: string | undefined;
890
+ strategy?: "async" | "defer" | undefined;
891
+ }, {
892
+ content?: string | undefined;
893
+ attributes?: Record<string, string> | undefined;
894
+ src?: string | undefined;
895
+ strategy?: "async" | "defer" | undefined;
896
+ }>, {
897
+ content?: string | undefined;
898
+ attributes?: Record<string, string> | undefined;
899
+ src?: string | undefined;
900
+ strategy?: "async" | "defer" | undefined;
901
+ }, {
902
+ content?: string | undefined;
903
+ attributes?: Record<string, string> | undefined;
904
+ src?: string | undefined;
905
+ strategy?: "async" | "defer" | undefined;
906
+ }>, "many">>;
907
+ vercel: z.ZodOptional<z.ZodBoolean>;
908
+ }, "strict", z.ZodTypeAny, {
909
+ posthog?: {
910
+ key: string;
911
+ host?: string | undefined;
912
+ } | undefined;
913
+ scripts?: {
914
+ content?: string | undefined;
915
+ attributes?: Record<string, string> | undefined;
916
+ src?: string | undefined;
917
+ strategy?: "async" | "defer" | undefined;
918
+ }[] | undefined;
919
+ vercel?: boolean | undefined;
920
+ }, {
921
+ posthog?: {
922
+ key: string;
923
+ host?: string | undefined;
924
+ } | undefined;
925
+ scripts?: {
926
+ content?: string | undefined;
927
+ attributes?: Record<string, string> | undefined;
928
+ src?: string | undefined;
929
+ strategy?: "async" | "defer" | undefined;
930
+ }[] | undefined;
931
+ vercel?: boolean | undefined;
932
+ }>>;
933
+ asyncapi: z.ZodDefault<z.ZodObject<{
934
+ enabled: z.ZodDefault<z.ZodBoolean>;
935
+ route: z.ZodDefault<z.ZodString>;
936
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
937
+ /** Nav/section label for this source. */
938
+ label: z.ZodOptional<z.ZodString>;
939
+ /** Per-source route; defaults to the block's `route` (or a derived path). */
940
+ route: z.ZodOptional<z.ZodString>;
941
+ /** Local path or `http(s)` URL to the spec. */
942
+ spec: z.ZodString;
943
+ }, "strict", z.ZodTypeAny, {
944
+ spec: string;
945
+ label?: string | undefined;
946
+ route?: string | undefined;
947
+ }, {
948
+ spec: string;
949
+ label?: string | undefined;
950
+ route?: string | undefined;
951
+ }>, "many">>;
952
+ spec: z.ZodOptional<z.ZodString>;
953
+ theme: z.ZodOptional<z.ZodString>;
954
+ }, "strict", z.ZodTypeAny, {
955
+ sources: {
956
+ spec: string;
957
+ label?: string | undefined;
958
+ route?: string | undefined;
959
+ }[];
960
+ enabled: boolean;
961
+ route: string;
962
+ theme?: string | undefined;
963
+ spec?: string | undefined;
964
+ }, {
965
+ sources?: {
966
+ spec: string;
967
+ label?: string | undefined;
968
+ route?: string | undefined;
969
+ }[] | undefined;
970
+ enabled?: boolean | undefined;
971
+ route?: string | undefined;
972
+ theme?: string | undefined;
973
+ spec?: string | undefined;
974
+ }>>;
975
+ banner: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
976
+ /** Background color override (Mintlify compatibility). */
977
+ color: z.ZodOptional<z.ZodEffects<z.ZodObject<{
978
+ dark: z.ZodOptional<z.ZodString>;
979
+ light: z.ZodOptional<z.ZodString>;
980
+ }, "strict", z.ZodTypeAny, {
981
+ dark?: string | undefined;
982
+ light?: string | undefined;
983
+ }, {
984
+ dark?: string | undefined;
985
+ light?: string | undefined;
986
+ }>, {
987
+ dark?: string | undefined;
988
+ light?: string | undefined;
989
+ }, {
990
+ dark?: string | undefined;
991
+ light?: string | undefined;
992
+ }>>;
993
+ content: z.ZodString;
994
+ /** Show a dismiss button; the choice is remembered per visitor. */
995
+ dismissible: z.ZodDefault<z.ZodBoolean>;
996
+ /** Stable key for remembering dismissal; defaults to the content. */
997
+ id: z.ZodOptional<z.ZodString>;
998
+ link: z.ZodOptional<z.ZodObject<{
999
+ href: z.ZodString;
1000
+ text: z.ZodString;
1001
+ }, "strict", z.ZodTypeAny, {
1002
+ href: string;
1003
+ text: string;
1004
+ }, {
1005
+ href: string;
1006
+ text: string;
1007
+ }>>;
1008
+ /** Tone (Mintlify compatibility). */
1009
+ type: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
1010
+ }, "strict", z.ZodTypeAny, {
1011
+ content: string;
1012
+ dismissible: boolean;
1013
+ type?: "info" | "warning" | "critical" | undefined;
1014
+ id?: string | undefined;
1015
+ color?: {
1016
+ dark?: string | undefined;
1017
+ light?: string | undefined;
1018
+ } | undefined;
1019
+ link?: {
1020
+ href: string;
1021
+ text: string;
1022
+ } | undefined;
1023
+ }, {
1024
+ content: string;
1025
+ type?: "info" | "warning" | "critical" | undefined;
1026
+ id?: string | undefined;
1027
+ color?: {
1028
+ dark?: string | undefined;
1029
+ light?: string | undefined;
1030
+ } | undefined;
1031
+ dismissible?: boolean | undefined;
1032
+ link?: {
1033
+ href: string;
1034
+ text: string;
1035
+ } | undefined;
1036
+ }>]>>;
1037
+ content: z.ZodDefault<z.ZodObject<{
1038
+ defaultType: z.ZodDefault<z.ZodString>;
1039
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1040
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1041
+ pages: z.ZodDefault<z.ZodString>;
1042
+ root: z.ZodDefault<z.ZodString>;
1043
+ /**
1044
+ * Pluggable content sources. When omitted, the top-level
1045
+ * `root`/`include`/`exclude` desugar to one implicit filesystem source, so
1046
+ * existing projects are unchanged.
1047
+ */
1048
+ sources: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1049
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1050
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1051
+ /** Namespaces the source's routes under `/<prefix>/`. */
1052
+ prefix: z.ZodOptional<z.ZodString>;
1053
+ root: z.ZodDefault<z.ZodString>;
1054
+ type: z.ZodLiteral<"filesystem">;
1055
+ }, "strict", z.ZodTypeAny, {
1056
+ type: "filesystem";
1057
+ exclude: string[];
1058
+ include: string[];
1059
+ root: string;
1060
+ prefix?: string | undefined;
1061
+ }, {
1062
+ type: "filesystem";
1063
+ exclude?: string[] | undefined;
1064
+ include?: string[] | undefined;
1065
+ prefix?: string | undefined;
1066
+ root?: string | undefined;
1067
+ }>, z.ZodObject<{
1068
+ /** Explicit list of source-relative file paths to fetch from `url`. */
1069
+ files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1070
+ /** Enumerate a GitHub repo subtree via the git-trees API. */
1071
+ github: z.ZodOptional<z.ZodObject<{
1072
+ owner: z.ZodString;
1073
+ path: z.ZodDefault<z.ZodString>;
1074
+ ref: z.ZodDefault<z.ZodString>;
1075
+ repo: z.ZodString;
1076
+ }, "strict", z.ZodTypeAny, {
1077
+ path: string;
1078
+ owner: string;
1079
+ ref: string;
1080
+ repo: string;
1081
+ }, {
1082
+ owner: string;
1083
+ repo: string;
1084
+ path?: string | undefined;
1085
+ ref?: string | undefined;
1086
+ }>>;
1087
+ /** Glob patterns applied to enumerated refs. */
1088
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1089
+ /** Opt-in dev polling interval (seconds); omit to freeze for the session. */
1090
+ pollInterval: z.ZodOptional<z.ZodNumber>;
1091
+ /** Namespaces the source's routes under `/<prefix>/`. */
1092
+ prefix: z.ZodOptional<z.ZodString>;
1093
+ type: z.ZodLiteral<"mdx-remote">;
1094
+ /** Raw base URL, e.g. `https://raw.githubusercontent.com/acme/sdk/main/docs`. */
1095
+ url: z.ZodOptional<z.ZodString>;
1096
+ }, "strict", z.ZodTypeAny, {
1097
+ type: "mdx-remote";
1098
+ include: string[];
1099
+ url?: string | undefined;
1100
+ prefix?: string | undefined;
1101
+ files?: string[] | undefined;
1102
+ github?: {
1103
+ path: string;
1104
+ owner: string;
1105
+ ref: string;
1106
+ repo: string;
1107
+ } | undefined;
1108
+ pollInterval?: number | undefined;
1109
+ }, {
1110
+ type: "mdx-remote";
1111
+ url?: string | undefined;
1112
+ include?: string[] | undefined;
1113
+ prefix?: string | undefined;
1114
+ files?: string[] | undefined;
1115
+ github?: {
1116
+ owner: string;
1117
+ repo: string;
1118
+ path?: string | undefined;
1119
+ ref?: string | undefined;
1120
+ } | undefined;
1121
+ pollInterval?: number | undefined;
1122
+ }>, z.ZodObject<{
1123
+ /** Sanity API version (a date); default `2024-01-01`. */
1124
+ apiVersion: z.ZodOptional<z.ZodString>;
1125
+ dataset: z.ZodString;
1126
+ /** Field paths mapping a document onto Blume meta + body. */
1127
+ fields: z.ZodOptional<z.ZodObject<{
1128
+ body: z.ZodOptional<z.ZodString>;
1129
+ description: z.ZodOptional<z.ZodString>;
1130
+ lastModified: z.ZodOptional<z.ZodString>;
1131
+ slug: z.ZodOptional<z.ZodString>;
1132
+ title: z.ZodOptional<z.ZodString>;
1133
+ }, "strict", z.ZodTypeAny, {
1134
+ body?: string | undefined;
1135
+ title?: string | undefined;
1136
+ description?: string | undefined;
1137
+ lastModified?: string | undefined;
1138
+ slug?: string | undefined;
1139
+ }, {
1140
+ body?: string | undefined;
1141
+ title?: string | undefined;
1142
+ description?: string | undefined;
1143
+ lastModified?: string | undefined;
1144
+ slug?: string | undefined;
1145
+ }>>;
1146
+ /** Opt-in dev polling interval (seconds); omit to freeze for the session. */
1147
+ pollInterval: z.ZodOptional<z.ZodNumber>;
1148
+ prefix: z.ZodOptional<z.ZodString>;
1149
+ projectId: z.ZodString;
1150
+ /** GROQ query selecting the documents to import. */
1151
+ query: z.ZodString;
1152
+ type: z.ZodLiteral<"sanity">;
1153
+ }, "strip", z.ZodTypeAny, {
1154
+ type: "sanity";
1155
+ dataset: string;
1156
+ projectId: string;
1157
+ query: string;
1158
+ prefix?: string | undefined;
1159
+ pollInterval?: number | undefined;
1160
+ apiVersion?: string | undefined;
1161
+ fields?: {
1162
+ body?: string | undefined;
1163
+ title?: string | undefined;
1164
+ description?: string | undefined;
1165
+ lastModified?: string | undefined;
1166
+ slug?: string | undefined;
1167
+ } | undefined;
1168
+ }, {
1169
+ type: "sanity";
1170
+ dataset: string;
1171
+ projectId: string;
1172
+ query: string;
1173
+ prefix?: string | undefined;
1174
+ pollInterval?: number | undefined;
1175
+ apiVersion?: string | undefined;
1176
+ fields?: {
1177
+ body?: string | undefined;
1178
+ title?: string | undefined;
1179
+ description?: string | undefined;
1180
+ lastModified?: string | undefined;
1181
+ slug?: string | undefined;
1182
+ } | undefined;
1183
+ }>, z.ZodObject<{
1184
+ database: z.ZodString;
1185
+ /** Opt-in dev polling interval (seconds); omit to freeze for the session. */
1186
+ pollInterval: z.ZodOptional<z.ZodNumber>;
1187
+ prefix: z.ZodOptional<z.ZodString>;
1188
+ /** Notion property names mapped onto Blume meta. */
1189
+ properties: z.ZodOptional<z.ZodObject<{
1190
+ description: z.ZodOptional<z.ZodString>;
1191
+ order: z.ZodOptional<z.ZodString>;
1192
+ slug: z.ZodOptional<z.ZodString>;
1193
+ status: z.ZodOptional<z.ZodString>;
1194
+ title: z.ZodOptional<z.ZodString>;
1195
+ }, "strict", z.ZodTypeAny, {
1196
+ status?: string | undefined;
1197
+ title?: string | undefined;
1198
+ order?: string | undefined;
1199
+ description?: string | undefined;
1200
+ slug?: string | undefined;
1201
+ }, {
1202
+ status?: string | undefined;
1203
+ title?: string | undefined;
1204
+ order?: string | undefined;
1205
+ description?: string | undefined;
1206
+ slug?: string | undefined;
1207
+ }>>;
1208
+ /** Status value treated as published; others map to `draft`. Default `Published`. */
1209
+ publishedValue: z.ZodOptional<z.ZodString>;
1210
+ type: z.ZodLiteral<"notion">;
1211
+ }, "strip", z.ZodTypeAny, {
1212
+ type: "notion";
1213
+ database: string;
1214
+ prefix?: string | undefined;
1215
+ pollInterval?: number | undefined;
1216
+ properties?: {
1217
+ status?: string | undefined;
1218
+ title?: string | undefined;
1219
+ order?: string | undefined;
1220
+ description?: string | undefined;
1221
+ slug?: string | undefined;
1222
+ } | undefined;
1223
+ publishedValue?: string | undefined;
1224
+ }, {
1225
+ type: "notion";
1226
+ database: string;
1227
+ prefix?: string | undefined;
1228
+ pollInterval?: number | undefined;
1229
+ properties?: {
1230
+ status?: string | undefined;
1231
+ title?: string | undefined;
1232
+ order?: string | undefined;
1233
+ description?: string | undefined;
1234
+ slug?: string | undefined;
1235
+ } | undefined;
1236
+ publishedValue?: string | undefined;
1237
+ }>, z.ZodObject<{
1238
+ /** Absolute path of the `docs.json`/`mint.json`, watched for changes in dev. */
1239
+ configFile: z.ZodOptional<z.ZodString>;
1240
+ /** Patterns excluded from page discovery (Mintlify defaults are merged in). */
1241
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1242
+ /** Glob patterns for Mintlify content files. */
1243
+ include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1244
+ /** Namespaces the source's routes under `/<prefix>/`. */
1245
+ prefix: z.ZodOptional<z.ZodString>;
1246
+ /** Content root, absolute or relative to the project root (Mintlify: `.`). */
1247
+ root: z.ZodDefault<z.ZodString>;
1248
+ type: z.ZodLiteral<"mintlify">;
1249
+ /** `docs.json` variables, inlined into content (`{{name}}`) at scan time. */
1250
+ variables: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1251
+ }, "strict", z.ZodTypeAny, {
1252
+ type: "mintlify";
1253
+ exclude: string[];
1254
+ include: string[];
1255
+ root: string;
1256
+ variables: Record<string, string>;
1257
+ prefix?: string | undefined;
1258
+ configFile?: string | undefined;
1259
+ }, {
1260
+ type: "mintlify";
1261
+ exclude?: string[] | undefined;
1262
+ include?: string[] | undefined;
1263
+ prefix?: string | undefined;
1264
+ root?: string | undefined;
1265
+ configFile?: string | undefined;
1266
+ variables?: Record<string, string> | undefined;
1267
+ }>, z.ZodObject<{
1268
+ source: z.ZodType<ContentSource, z.ZodTypeDef, ContentSource>;
1269
+ type: z.ZodLiteral<"custom">;
1270
+ }, "strip", z.ZodTypeAny, {
1271
+ type: "custom";
1272
+ source: ContentSource;
1273
+ }, {
1274
+ type: "custom";
1275
+ source: ContentSource;
1276
+ }>]>, "many">>;
1277
+ }, "strict", z.ZodTypeAny, {
1278
+ exclude: string[];
1279
+ pages: string;
1280
+ include: string[];
1281
+ root: string;
1282
+ defaultType: string;
1283
+ sources?: ({
1284
+ type: "filesystem";
1285
+ exclude: string[];
1286
+ include: string[];
1287
+ root: string;
1288
+ prefix?: string | undefined;
1289
+ } | {
1290
+ type: "mdx-remote";
1291
+ include: string[];
1292
+ url?: string | undefined;
1293
+ prefix?: string | undefined;
1294
+ files?: string[] | undefined;
1295
+ github?: {
1296
+ path: string;
1297
+ owner: string;
1298
+ ref: string;
1299
+ repo: string;
1300
+ } | undefined;
1301
+ pollInterval?: number | undefined;
1302
+ } | {
1303
+ type: "sanity";
1304
+ dataset: string;
1305
+ projectId: string;
1306
+ query: string;
1307
+ prefix?: string | undefined;
1308
+ pollInterval?: number | undefined;
1309
+ apiVersion?: string | undefined;
1310
+ fields?: {
1311
+ body?: string | undefined;
1312
+ title?: string | undefined;
1313
+ description?: string | undefined;
1314
+ lastModified?: string | undefined;
1315
+ slug?: string | undefined;
1316
+ } | undefined;
1317
+ } | {
1318
+ type: "notion";
1319
+ database: string;
1320
+ prefix?: string | undefined;
1321
+ pollInterval?: number | undefined;
1322
+ properties?: {
1323
+ status?: string | undefined;
1324
+ title?: string | undefined;
1325
+ order?: string | undefined;
1326
+ description?: string | undefined;
1327
+ slug?: string | undefined;
1328
+ } | undefined;
1329
+ publishedValue?: string | undefined;
1330
+ } | {
1331
+ type: "mintlify";
1332
+ exclude: string[];
1333
+ include: string[];
1334
+ root: string;
1335
+ variables: Record<string, string>;
1336
+ prefix?: string | undefined;
1337
+ configFile?: string | undefined;
1338
+ } | {
1339
+ type: "custom";
1340
+ source: ContentSource;
1341
+ })[] | undefined;
1342
+ }, {
1343
+ exclude?: string[] | undefined;
1344
+ pages?: string | undefined;
1345
+ include?: string[] | undefined;
1346
+ root?: string | undefined;
1347
+ defaultType?: string | undefined;
1348
+ sources?: ({
1349
+ type: "filesystem";
1350
+ exclude?: string[] | undefined;
1351
+ include?: string[] | undefined;
1352
+ prefix?: string | undefined;
1353
+ root?: string | undefined;
1354
+ } | {
1355
+ type: "mdx-remote";
1356
+ url?: string | undefined;
1357
+ include?: string[] | undefined;
1358
+ prefix?: string | undefined;
1359
+ files?: string[] | undefined;
1360
+ github?: {
1361
+ owner: string;
1362
+ repo: string;
1363
+ path?: string | undefined;
1364
+ ref?: string | undefined;
1365
+ } | undefined;
1366
+ pollInterval?: number | undefined;
1367
+ } | {
1368
+ type: "sanity";
1369
+ dataset: string;
1370
+ projectId: string;
1371
+ query: string;
1372
+ prefix?: string | undefined;
1373
+ pollInterval?: number | undefined;
1374
+ apiVersion?: string | undefined;
1375
+ fields?: {
1376
+ body?: string | undefined;
1377
+ title?: string | undefined;
1378
+ description?: string | undefined;
1379
+ lastModified?: string | undefined;
1380
+ slug?: string | undefined;
1381
+ } | undefined;
1382
+ } | {
1383
+ type: "notion";
1384
+ database: string;
1385
+ prefix?: string | undefined;
1386
+ pollInterval?: number | undefined;
1387
+ properties?: {
1388
+ status?: string | undefined;
1389
+ title?: string | undefined;
1390
+ order?: string | undefined;
1391
+ description?: string | undefined;
1392
+ slug?: string | undefined;
1393
+ } | undefined;
1394
+ publishedValue?: string | undefined;
1395
+ } | {
1396
+ type: "mintlify";
1397
+ exclude?: string[] | undefined;
1398
+ include?: string[] | undefined;
1399
+ prefix?: string | undefined;
1400
+ root?: string | undefined;
1401
+ configFile?: string | undefined;
1402
+ variables?: Record<string, string> | undefined;
1403
+ } | {
1404
+ type: "custom";
1405
+ source: ContentSource;
1406
+ })[] | undefined;
1407
+ }>>;
1408
+ contextual: z.ZodDefault<z.ZodObject<{
1409
+ display: z.ZodDefault<z.ZodEnum<["header", "toc"]>>;
1410
+ options: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
1411
+ description: z.ZodOptional<z.ZodString>;
1412
+ href: z.ZodOptional<z.ZodString>;
1413
+ icon: z.ZodOptional<z.ZodString>;
1414
+ title: z.ZodString;
1415
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1416
+ description: z.ZodOptional<z.ZodString>;
1417
+ href: z.ZodOptional<z.ZodString>;
1418
+ icon: z.ZodOptional<z.ZodString>;
1419
+ title: z.ZodString;
1420
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1421
+ description: z.ZodOptional<z.ZodString>;
1422
+ href: z.ZodOptional<z.ZodString>;
1423
+ icon: z.ZodOptional<z.ZodString>;
1424
+ title: z.ZodString;
1425
+ }, z.ZodTypeAny, "passthrough">>]>, "many">>;
1426
+ }, "strict", z.ZodTypeAny, {
1427
+ display: "toc" | "header";
1428
+ options: (string | z.objectOutputType<{
1429
+ description: z.ZodOptional<z.ZodString>;
1430
+ href: z.ZodOptional<z.ZodString>;
1431
+ icon: z.ZodOptional<z.ZodString>;
1432
+ title: z.ZodString;
1433
+ }, z.ZodTypeAny, "passthrough">)[];
1434
+ }, {
1435
+ display?: "toc" | "header" | undefined;
1436
+ options?: (string | z.objectInputType<{
1437
+ description: z.ZodOptional<z.ZodString>;
1438
+ href: z.ZodOptional<z.ZodString>;
1439
+ icon: z.ZodOptional<z.ZodString>;
1440
+ title: z.ZodString;
1441
+ }, z.ZodTypeAny, "passthrough">)[] | undefined;
1442
+ }>>;
1443
+ deployment: z.ZodDefault<z.ZodObject<{
1444
+ adapter: z.ZodDefault<z.ZodNullable<z.ZodEnum<["vercel", "node", "netlify", "cloudflare"]>>>;
1445
+ base: z.ZodOptional<z.ZodString>;
1446
+ output: z.ZodDefault<z.ZodEnum<["static", "server"]>>;
1447
+ site: z.ZodOptional<z.ZodString>;
1448
+ }, "strict", z.ZodTypeAny, {
1449
+ adapter: "vercel" | "node" | "netlify" | "cloudflare" | null;
1450
+ output: "static" | "server";
1451
+ base?: string | undefined;
1452
+ site?: string | undefined;
1453
+ }, {
1454
+ adapter?: "vercel" | "node" | "netlify" | "cloudflare" | null | undefined;
1455
+ base?: string | undefined;
1456
+ output?: "static" | "server" | undefined;
1457
+ site?: string | undefined;
1458
+ }>>;
1459
+ description: z.ZodOptional<z.ZodString>;
1460
+ /**
1461
+ * Directory (relative to the project root) that `<Component path>` resolves
1462
+ * live previews and their source against. Defaults to `examples`; point it
1463
+ * elsewhere when examples live outside a top-level `examples/` — e.g. a
1464
+ * registry layout like `registry/<pkg>`, where a `<Component path>` key is
1465
+ * then relative to that directory.
1466
+ */
1467
+ examples: z.ZodDefault<z.ZodString>;
1468
+ export: z.ZodDefault<z.ZodEffects<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1469
+ epub: z.ZodDefault<z.ZodBoolean>;
1470
+ pdf: z.ZodDefault<z.ZodBoolean>;
1471
+ }, "strict", z.ZodTypeAny, {
1472
+ epub: boolean;
1473
+ pdf: boolean;
1474
+ }, {
1475
+ epub?: boolean | undefined;
1476
+ pdf?: boolean | undefined;
1477
+ }>]>, {
1478
+ epub: boolean;
1479
+ pdf: boolean;
1480
+ }, boolean | {
1481
+ epub?: boolean | undefined;
1482
+ pdf?: boolean | undefined;
1483
+ }>>;
1484
+ favicon: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1485
+ dark: z.ZodOptional<z.ZodString>;
1486
+ light: z.ZodOptional<z.ZodString>;
1487
+ }, "strict", z.ZodTypeAny, {
1488
+ dark?: string | undefined;
1489
+ light?: string | undefined;
1490
+ }, {
1491
+ dark?: string | undefined;
1492
+ light?: string | undefined;
1493
+ }>]>>;
1494
+ feedback: z.ZodDefault<z.ZodBoolean>;
1495
+ footer: z.ZodDefault<z.ZodObject<{
1496
+ links: z.ZodDefault<z.ZodArray<z.ZodObject<{
1497
+ header: z.ZodOptional<z.ZodString>;
1498
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
1499
+ href: z.ZodString;
1500
+ label: z.ZodString;
1501
+ }, "strict", z.ZodTypeAny, {
1502
+ label: string;
1503
+ href: string;
1504
+ }, {
1505
+ label: string;
1506
+ href: string;
1507
+ }>, "many">>;
1508
+ }, "strict", z.ZodTypeAny, {
1509
+ items: {
1510
+ label: string;
1511
+ href: string;
1512
+ }[];
1513
+ header?: string | undefined;
1514
+ }, {
1515
+ items?: {
1516
+ label: string;
1517
+ href: string;
1518
+ }[] | undefined;
1519
+ header?: string | undefined;
1520
+ }>, "many">>;
1521
+ socials: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1522
+ }, "strict", z.ZodTypeAny, {
1523
+ links: {
1524
+ items: {
1525
+ label: string;
1526
+ href: string;
1527
+ }[];
1528
+ header?: string | undefined;
1529
+ }[];
1530
+ socials: Record<string, string>;
1531
+ }, {
1532
+ links?: {
1533
+ items?: {
1534
+ label: string;
1535
+ href: string;
1536
+ }[] | undefined;
1537
+ header?: string | undefined;
1538
+ }[] | undefined;
1539
+ socials?: Record<string, string> | undefined;
1540
+ }>>;
1541
+ github: z.ZodOptional<z.ZodObject<{
1542
+ branch: z.ZodDefault<z.ZodString>;
1543
+ /** Path from the repo root to the project root (for monorepos). */
1544
+ dir: z.ZodOptional<z.ZodString>;
1545
+ owner: z.ZodString;
1546
+ repo: z.ZodString;
1547
+ }, "strict", z.ZodTypeAny, {
1548
+ owner: string;
1549
+ repo: string;
1550
+ branch: string;
1551
+ dir?: string | undefined;
1552
+ }, {
1553
+ owner: string;
1554
+ repo: string;
1555
+ dir?: string | undefined;
1556
+ branch?: string | undefined;
1557
+ }>>;
1558
+ i18n: z.ZodOptional<z.ZodEffects<z.ZodObject<{
1559
+ defaultLocale: z.ZodDefault<z.ZodString>;
1560
+ /** Locale rendered for a missing translation; `null` disables fallback. */
1561
+ fallbackLocale: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1562
+ /** Drop the URL prefix for the default locale (`/`, `/fr/…`). Static-safe. */
1563
+ hideDefaultLocalePrefix: z.ZodDefault<z.ZodBoolean>;
1564
+ locales: z.ZodArray<z.ZodObject<{
1565
+ code: z.ZodString;
1566
+ /** Text direction; drives `<html dir>` and a future RTL pass. */
1567
+ dir: z.ZodDefault<z.ZodEnum<["ltr", "rtl"]>>;
1568
+ label: z.ZodString;
1569
+ }, "strict", z.ZodTypeAny, {
1570
+ code: string;
1571
+ label: string;
1572
+ dir: "ltr" | "rtl";
1573
+ }, {
1574
+ code: string;
1575
+ label: string;
1576
+ dir?: "ltr" | "rtl" | undefined;
1577
+ }>, "many">;
1578
+ /** `"dir"`: locale directories (`fr/page.mdx`). `"dot"`: filename suffix (`page.fr.mdx`). */
1579
+ parser: z.ZodDefault<z.ZodEnum<["dir", "dot"]>>;
1580
+ /** Per-locale UI string overrides: `{ fr: { search: { button: "…" } } }`. */
1581
+ ui: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>>;
1582
+ }, "strict", z.ZodTypeAny, {
1583
+ defaultLocale: string;
1584
+ hideDefaultLocalePrefix: boolean;
1585
+ locales: {
1586
+ code: string;
1587
+ label: string;
1588
+ dir: "ltr" | "rtl";
1589
+ }[];
1590
+ parser: "dir" | "dot";
1591
+ fallbackLocale?: string | null | undefined;
1592
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
1593
+ }, {
1594
+ locales: {
1595
+ code: string;
1596
+ label: string;
1597
+ dir?: "ltr" | "rtl" | undefined;
1598
+ }[];
1599
+ defaultLocale?: string | undefined;
1600
+ fallbackLocale?: string | null | undefined;
1601
+ hideDefaultLocalePrefix?: boolean | undefined;
1602
+ parser?: "dir" | "dot" | undefined;
1603
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
1604
+ }>, {
1605
+ defaultLocale: string;
1606
+ hideDefaultLocalePrefix: boolean;
1607
+ locales: {
1608
+ code: string;
1609
+ label: string;
1610
+ dir: "ltr" | "rtl";
1611
+ }[];
1612
+ parser: "dir" | "dot";
1613
+ fallbackLocale?: string | null | undefined;
1614
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
1615
+ }, {
1616
+ locales: {
1617
+ code: string;
1618
+ label: string;
1619
+ dir?: "ltr" | "rtl" | undefined;
1620
+ }[];
1621
+ defaultLocale?: string | undefined;
1622
+ fallbackLocale?: string | null | undefined;
1623
+ hideDefaultLocalePrefix?: boolean | undefined;
1624
+ parser?: "dir" | "dot" | undefined;
1625
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
1626
+ }>>;
1627
+ icons: z.ZodDefault<z.ZodObject<{
1628
+ library: z.ZodDefault<z.ZodEnum<["fontawesome", "lucide", "tabler"]>>;
1629
+ }, "strict", z.ZodTypeAny, {
1630
+ library: "fontawesome" | "lucide" | "tabler";
1631
+ }, {
1632
+ library?: "fontawesome" | "lucide" | "tabler" | undefined;
1633
+ }>>;
1634
+ lastModified: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1635
+ type: z.ZodDefault<z.ZodEnum<["git", "frontmatter"]>>;
1636
+ }, "strict", z.ZodTypeAny, {
1637
+ type: "git" | "frontmatter";
1638
+ }, {
1639
+ type?: "git" | "frontmatter" | undefined;
1640
+ }>]>>;
1641
+ logo: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1642
+ alt: z.ZodOptional<z.ZodString>;
1643
+ dark: z.ZodOptional<z.ZodString>;
1644
+ href: z.ZodOptional<z.ZodString>;
1645
+ light: z.ZodOptional<z.ZodString>;
1646
+ }, "strict", z.ZodTypeAny, {
1647
+ alt?: string | undefined;
1648
+ dark?: string | undefined;
1649
+ href?: string | undefined;
1650
+ light?: string | undefined;
1651
+ }, {
1652
+ alt?: string | undefined;
1653
+ dark?: string | undefined;
1654
+ href?: string | undefined;
1655
+ light?: string | undefined;
1656
+ }>]>>;
1657
+ markdown: z.ZodDefault<z.ZodObject<{
1658
+ /** Code-block rendering: language icons and line wrapping. */
1659
+ code: z.ZodDefault<z.ZodObject<{
1660
+ /**
1661
+ * Show a brand language icon in the code-block header (TypeScript, Python,
1662
+ * …). On by default; recognized languages only.
1663
+ */
1664
+ icons: z.ZodDefault<z.ZodBoolean>;
1665
+ /**
1666
+ * Syntax-highlight inline `` `code{:lang}` `` snippets. Off by default — most
1667
+ * inline code (flags, file names) reads better plain; opt a snippet in with
1668
+ * a trailing `{:lang}` marker.
1669
+ */
1670
+ inline: z.ZodDefault<z.ZodBoolean>;
1671
+ /**
1672
+ * Wrap long lines instead of scrolling horizontally. Off by default, so
1673
+ * code keeps its original line breaks and overflows into a scroll area.
1674
+ */
1675
+ wrap: z.ZodDefault<z.ZodBoolean>;
1676
+ }, "strict", z.ZodTypeAny, {
1677
+ icons: boolean;
1678
+ inline: boolean;
1679
+ wrap: boolean;
1680
+ }, {
1681
+ icons?: boolean | undefined;
1682
+ inline?: boolean | undefined;
1683
+ wrap?: boolean | undefined;
1684
+ }>>;
1685
+ codeBlocks: z.ZodDefault<z.ZodObject<{
1686
+ theme: z.ZodDefault<z.ZodObject<{
1687
+ dark: z.ZodDefault<z.ZodString>;
1688
+ light: z.ZodDefault<z.ZodString>;
1689
+ }, "strict", z.ZodTypeAny, {
1690
+ dark: string;
1691
+ light: string;
1692
+ }, {
1693
+ dark?: string | undefined;
1694
+ light?: string | undefined;
1695
+ }>>;
1696
+ }, "strict", z.ZodTypeAny, {
1697
+ theme: {
1698
+ dark: string;
1699
+ light: string;
1700
+ };
1701
+ }, {
1702
+ theme?: {
1703
+ dark?: string | undefined;
1704
+ light?: string | undefined;
1705
+ } | undefined;
1706
+ }>>;
1707
+ /**
1708
+ * Wrap each `##`–`######` heading in a link to its own anchor so readers can
1709
+ * click to copy, bookmark, or share a permalink to that section. On by
1710
+ * default; set to `false` to render plain headings.
1711
+ */
1712
+ headingAnchors: z.ZodDefault<z.ZodBoolean>;
1713
+ /**
1714
+ * Make content images click-to-zoom (open in a lightbox). On by default;
1715
+ * opt a single image out with `data-no-zoom`.
1716
+ */
1717
+ imageZoom: z.ZodDefault<z.ZodBoolean>;
1718
+ /**
1719
+ * Enable LaTeX math (`$…$` inline, `$$…$$` block) rendered with KaTeX.
1720
+ * Off by default since `$` is common in prose, shell, and code. MDX only.
1721
+ */
1722
+ math: z.ZodDefault<z.ZodBoolean>;
1723
+ }, "strict", z.ZodTypeAny, {
1724
+ code: {
1725
+ icons: boolean;
1726
+ inline: boolean;
1727
+ wrap: boolean;
1728
+ };
1729
+ codeBlocks: {
1730
+ theme: {
1731
+ dark: string;
1732
+ light: string;
1733
+ };
1734
+ };
1735
+ headingAnchors: boolean;
1736
+ imageZoom: boolean;
1737
+ math: boolean;
1738
+ }, {
1739
+ code?: {
1740
+ icons?: boolean | undefined;
1741
+ inline?: boolean | undefined;
1742
+ wrap?: boolean | undefined;
1743
+ } | undefined;
1744
+ codeBlocks?: {
1745
+ theme?: {
1746
+ dark?: string | undefined;
1747
+ light?: string | undefined;
1748
+ } | undefined;
1749
+ } | undefined;
1750
+ headingAnchors?: boolean | undefined;
1751
+ imageZoom?: boolean | undefined;
1752
+ math?: boolean | undefined;
1753
+ }>>;
1754
+ mcp: z.ZodDefault<z.ZodObject<{
1755
+ enabled: z.ZodDefault<z.ZodBoolean>;
1756
+ /** Optional system hint passed to connecting agents. */
1757
+ instructions: z.ZodOptional<z.ZodString>;
1758
+ /** Server name shown to clients; defaults to the site title. */
1759
+ name: z.ZodOptional<z.ZodString>;
1760
+ route: z.ZodDefault<z.ZodString>;
1761
+ }, "strict", z.ZodTypeAny, {
1762
+ enabled: boolean;
1763
+ route: string;
1764
+ instructions?: string | undefined;
1765
+ name?: string | undefined;
1766
+ }, {
1767
+ enabled?: boolean | undefined;
1768
+ instructions?: string | undefined;
1769
+ name?: string | undefined;
1770
+ route?: string | undefined;
1771
+ }>>;
1772
+ navbar: z.ZodDefault<z.ZodObject<{
1773
+ links: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
1774
+ href: z.ZodString;
1775
+ icon: z.ZodOptional<z.ZodString>;
1776
+ label: z.ZodOptional<z.ZodString>;
1777
+ type: z.ZodOptional<z.ZodEnum<["github", "discord"]>>;
1778
+ }, "strict", z.ZodTypeAny, {
1779
+ href: string;
1780
+ type?: "github" | "discord" | undefined;
1781
+ label?: string | undefined;
1782
+ icon?: string | undefined;
1783
+ }, {
1784
+ href: string;
1785
+ type?: "github" | "discord" | undefined;
1786
+ label?: string | undefined;
1787
+ icon?: string | undefined;
1788
+ }>, {
1789
+ href: string;
1790
+ type?: "github" | "discord" | undefined;
1791
+ label?: string | undefined;
1792
+ icon?: string | undefined;
1793
+ }, {
1794
+ href: string;
1795
+ type?: "github" | "discord" | undefined;
1796
+ label?: string | undefined;
1797
+ icon?: string | undefined;
1798
+ }>, "many">>;
1799
+ primary: z.ZodOptional<z.ZodEffects<z.ZodObject<{
1800
+ href: z.ZodString;
1801
+ label: z.ZodOptional<z.ZodString>;
1802
+ type: z.ZodDefault<z.ZodEnum<["button", "github", "discord"]>>;
1803
+ }, "strict", z.ZodTypeAny, {
1804
+ type: "button" | "github" | "discord";
1805
+ href: string;
1806
+ label?: string | undefined;
1807
+ }, {
1808
+ href: string;
1809
+ type?: "button" | "github" | "discord" | undefined;
1810
+ label?: string | undefined;
1811
+ }>, {
1812
+ type: "button" | "github" | "discord";
1813
+ href: string;
1814
+ label?: string | undefined;
1815
+ }, {
1816
+ href: string;
1817
+ type?: "button" | "github" | "discord" | undefined;
1818
+ label?: string | undefined;
1819
+ }>>;
1820
+ }, "strict", z.ZodTypeAny, {
1821
+ links: {
1822
+ href: string;
1823
+ type?: "github" | "discord" | undefined;
1824
+ label?: string | undefined;
1825
+ icon?: string | undefined;
1826
+ }[];
1827
+ primary?: {
1828
+ type: "button" | "github" | "discord";
1829
+ href: string;
1830
+ label?: string | undefined;
1831
+ } | undefined;
1832
+ }, {
1833
+ links?: {
1834
+ href: string;
1835
+ type?: "github" | "discord" | undefined;
1836
+ label?: string | undefined;
1837
+ icon?: string | undefined;
1838
+ }[] | undefined;
1839
+ primary?: {
1840
+ href: string;
1841
+ type?: "button" | "github" | "discord" | undefined;
1842
+ label?: string | undefined;
1843
+ } | undefined;
1844
+ }>>;
1845
+ navigation: z.ZodDefault<z.ZodObject<{
1846
+ chromeVariants: z.ZodDefault<z.ZodArray<z.ZodObject<{
1847
+ banner: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1848
+ /** Background color override (Mintlify compatibility). */
1849
+ color: z.ZodOptional<z.ZodEffects<z.ZodObject<{
1850
+ dark: z.ZodOptional<z.ZodString>;
1851
+ light: z.ZodOptional<z.ZodString>;
1852
+ }, "strict", z.ZodTypeAny, {
1853
+ dark?: string | undefined;
1854
+ light?: string | undefined;
1855
+ }, {
1856
+ dark?: string | undefined;
1857
+ light?: string | undefined;
1858
+ }>, {
1859
+ dark?: string | undefined;
1860
+ light?: string | undefined;
1861
+ }, {
1862
+ dark?: string | undefined;
1863
+ light?: string | undefined;
1864
+ }>>;
1865
+ content: z.ZodString;
1866
+ /** Show a dismiss button; the choice is remembered per visitor. */
1867
+ dismissible: z.ZodDefault<z.ZodBoolean>;
1868
+ /** Stable key for remembering dismissal; defaults to the content. */
1869
+ id: z.ZodOptional<z.ZodString>;
1870
+ link: z.ZodOptional<z.ZodObject<{
1871
+ href: z.ZodString;
1872
+ text: z.ZodString;
1873
+ }, "strict", z.ZodTypeAny, {
1874
+ href: string;
1875
+ text: string;
1876
+ }, {
1877
+ href: string;
1878
+ text: string;
1879
+ }>>;
1880
+ /** Tone (Mintlify compatibility). */
1881
+ type: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
1882
+ }, "strict", z.ZodTypeAny, {
1883
+ content: string;
1884
+ dismissible: boolean;
1885
+ type?: "info" | "warning" | "critical" | undefined;
1886
+ id?: string | undefined;
1887
+ color?: {
1888
+ dark?: string | undefined;
1889
+ light?: string | undefined;
1890
+ } | undefined;
1891
+ link?: {
1892
+ href: string;
1893
+ text: string;
1894
+ } | undefined;
1895
+ }, {
1896
+ content: string;
1897
+ type?: "info" | "warning" | "critical" | undefined;
1898
+ id?: string | undefined;
1899
+ color?: {
1900
+ dark?: string | undefined;
1901
+ light?: string | undefined;
1902
+ } | undefined;
1903
+ dismissible?: boolean | undefined;
1904
+ link?: {
1905
+ href: string;
1906
+ text: string;
1907
+ } | undefined;
1908
+ }>]>>;
1909
+ footer: z.ZodOptional<z.ZodObject<{
1910
+ links: z.ZodDefault<z.ZodArray<z.ZodObject<{
1911
+ header: z.ZodOptional<z.ZodString>;
1912
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
1913
+ href: z.ZodString;
1914
+ label: z.ZodString;
1915
+ }, "strict", z.ZodTypeAny, {
1916
+ label: string;
1917
+ href: string;
1918
+ }, {
1919
+ label: string;
1920
+ href: string;
1921
+ }>, "many">>;
1922
+ }, "strict", z.ZodTypeAny, {
1923
+ items: {
1924
+ label: string;
1925
+ href: string;
1926
+ }[];
1927
+ header?: string | undefined;
1928
+ }, {
1929
+ items?: {
1930
+ label: string;
1931
+ href: string;
1932
+ }[] | undefined;
1933
+ header?: string | undefined;
1934
+ }>, "many">>;
1935
+ socials: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1936
+ }, "strict", z.ZodTypeAny, {
1937
+ links: {
1938
+ items: {
1939
+ label: string;
1940
+ href: string;
1941
+ }[];
1942
+ header?: string | undefined;
1943
+ }[];
1944
+ socials: Record<string, string>;
1945
+ }, {
1946
+ links?: {
1947
+ items?: {
1948
+ label: string;
1949
+ href: string;
1950
+ }[] | undefined;
1951
+ header?: string | undefined;
1952
+ }[] | undefined;
1953
+ socials?: Record<string, string> | undefined;
1954
+ }>>;
1955
+ navbar: z.ZodOptional<z.ZodObject<{
1956
+ links: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
1957
+ href: z.ZodString;
1958
+ icon: z.ZodOptional<z.ZodString>;
1959
+ label: z.ZodOptional<z.ZodString>;
1960
+ type: z.ZodOptional<z.ZodEnum<["github", "discord"]>>;
1961
+ }, "strict", z.ZodTypeAny, {
1962
+ href: string;
1963
+ type?: "github" | "discord" | undefined;
1964
+ label?: string | undefined;
1965
+ icon?: string | undefined;
1966
+ }, {
1967
+ href: string;
1968
+ type?: "github" | "discord" | undefined;
1969
+ label?: string | undefined;
1970
+ icon?: string | undefined;
1971
+ }>, {
1972
+ href: string;
1973
+ type?: "github" | "discord" | undefined;
1974
+ label?: string | undefined;
1975
+ icon?: string | undefined;
1976
+ }, {
1977
+ href: string;
1978
+ type?: "github" | "discord" | undefined;
1979
+ label?: string | undefined;
1980
+ icon?: string | undefined;
1981
+ }>, "many">>;
1982
+ primary: z.ZodOptional<z.ZodEffects<z.ZodObject<{
1983
+ href: z.ZodString;
1984
+ label: z.ZodOptional<z.ZodString>;
1985
+ type: z.ZodDefault<z.ZodEnum<["button", "github", "discord"]>>;
1986
+ }, "strict", z.ZodTypeAny, {
1987
+ type: "button" | "github" | "discord";
1988
+ href: string;
1989
+ label?: string | undefined;
1990
+ }, {
1991
+ href: string;
1992
+ type?: "button" | "github" | "discord" | undefined;
1993
+ label?: string | undefined;
1994
+ }>, {
1995
+ type: "button" | "github" | "discord";
1996
+ href: string;
1997
+ label?: string | undefined;
1998
+ }, {
1999
+ href: string;
2000
+ type?: "button" | "github" | "discord" | undefined;
2001
+ label?: string | undefined;
2002
+ }>>;
2003
+ }, "strict", z.ZodTypeAny, {
2004
+ links: {
2005
+ href: string;
2006
+ type?: "github" | "discord" | undefined;
2007
+ label?: string | undefined;
2008
+ icon?: string | undefined;
2009
+ }[];
2010
+ primary?: {
2011
+ type: "button" | "github" | "discord";
2012
+ href: string;
2013
+ label?: string | undefined;
2014
+ } | undefined;
2015
+ }, {
2016
+ links?: {
2017
+ href: string;
2018
+ type?: "github" | "discord" | undefined;
2019
+ label?: string | undefined;
2020
+ icon?: string | undefined;
2021
+ }[] | undefined;
2022
+ primary?: {
2023
+ href: string;
2024
+ type?: "button" | "github" | "discord" | undefined;
2025
+ label?: string | undefined;
2026
+ } | undefined;
2027
+ }>>;
2028
+ path: z.ZodString;
2029
+ }, "strict", z.ZodTypeAny, {
2030
+ path: string;
2031
+ banner?: string | {
2032
+ content: string;
2033
+ dismissible: boolean;
2034
+ type?: "info" | "warning" | "critical" | undefined;
2035
+ id?: string | undefined;
2036
+ color?: {
2037
+ dark?: string | undefined;
2038
+ light?: string | undefined;
2039
+ } | undefined;
2040
+ link?: {
2041
+ href: string;
2042
+ text: string;
2043
+ } | undefined;
2044
+ } | undefined;
2045
+ footer?: {
2046
+ links: {
2047
+ items: {
2048
+ label: string;
2049
+ href: string;
2050
+ }[];
2051
+ header?: string | undefined;
2052
+ }[];
2053
+ socials: Record<string, string>;
2054
+ } | undefined;
2055
+ navbar?: {
2056
+ links: {
2057
+ href: string;
2058
+ type?: "github" | "discord" | undefined;
2059
+ label?: string | undefined;
2060
+ icon?: string | undefined;
2061
+ }[];
2062
+ primary?: {
2063
+ type: "button" | "github" | "discord";
2064
+ href: string;
2065
+ label?: string | undefined;
2066
+ } | undefined;
2067
+ } | undefined;
2068
+ }, {
2069
+ path: string;
2070
+ banner?: string | {
2071
+ content: string;
2072
+ type?: "info" | "warning" | "critical" | undefined;
2073
+ id?: string | undefined;
2074
+ color?: {
2075
+ dark?: string | undefined;
2076
+ light?: string | undefined;
2077
+ } | undefined;
2078
+ dismissible?: boolean | undefined;
2079
+ link?: {
2080
+ href: string;
2081
+ text: string;
2082
+ } | undefined;
2083
+ } | undefined;
2084
+ footer?: {
2085
+ links?: {
2086
+ items?: {
2087
+ label: string;
2088
+ href: string;
2089
+ }[] | undefined;
2090
+ header?: string | undefined;
2091
+ }[] | undefined;
2092
+ socials?: Record<string, string> | undefined;
2093
+ } | undefined;
2094
+ navbar?: {
2095
+ links?: {
2096
+ href: string;
2097
+ type?: "github" | "discord" | undefined;
2098
+ label?: string | undefined;
2099
+ icon?: string | undefined;
2100
+ }[] | undefined;
2101
+ primary?: {
2102
+ href: string;
2103
+ type?: "button" | "github" | "discord" | undefined;
2104
+ label?: string | undefined;
2105
+ } | undefined;
2106
+ } | undefined;
2107
+ }>, "many">>;
2108
+ /** Show a GitHub repo link in the header (requires `github` configured). */
2109
+ repo: z.ZodDefault<z.ZodBoolean>;
2110
+ selectors: z.ZodDefault<z.ZodArray<z.ZodObject<{
2111
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
2112
+ description: z.ZodOptional<z.ZodString>;
2113
+ icon: z.ZodOptional<z.ZodString>;
2114
+ label: z.ZodString;
2115
+ path: z.ZodString;
2116
+ tag: z.ZodOptional<z.ZodString>;
2117
+ }, "strict", z.ZodTypeAny, {
2118
+ path: string;
2119
+ label: string;
2120
+ icon?: string | undefined;
2121
+ description?: string | undefined;
2122
+ tag?: string | undefined;
2123
+ }, {
2124
+ path: string;
2125
+ label: string;
2126
+ icon?: string | undefined;
2127
+ description?: string | undefined;
2128
+ tag?: string | undefined;
2129
+ }>, "many">>;
2130
+ kind: z.ZodEnum<["dropdown", "language", "product", "version"]>;
2131
+ label: z.ZodString;
2132
+ }, "strict", z.ZodTypeAny, {
2133
+ label: string;
2134
+ items: {
2135
+ path: string;
2136
+ label: string;
2137
+ icon?: string | undefined;
2138
+ description?: string | undefined;
2139
+ tag?: string | undefined;
2140
+ }[];
2141
+ kind: "version" | "dropdown" | "language" | "product";
2142
+ }, {
2143
+ label: string;
2144
+ kind: "version" | "dropdown" | "language" | "product";
2145
+ items?: {
2146
+ path: string;
2147
+ label: string;
2148
+ icon?: string | undefined;
2149
+ description?: string | undefined;
2150
+ tag?: string | undefined;
2151
+ }[] | undefined;
2152
+ }>, "many">>;
2153
+ /** Explicit sidebar override; when omitted the sidebar is generated. */
2154
+ sidebar: z.ZodOptional<z.ZodArray<z.ZodType<SidebarItemConfig, z.ZodTypeDef, SidebarItemConfig>, "many">>;
2155
+ sidebarVariants: z.ZodDefault<z.ZodArray<z.ZodObject<{
2156
+ items: z.ZodDefault<z.ZodArray<z.ZodType<SidebarItemConfig, z.ZodTypeDef, SidebarItemConfig>, "many">>;
2157
+ path: z.ZodString;
2158
+ }, "strict", z.ZodTypeAny, {
2159
+ path: string;
2160
+ items: SidebarItemConfig[];
2161
+ }, {
2162
+ path: string;
2163
+ items?: SidebarItemConfig[] | undefined;
2164
+ }>, "many">>;
2165
+ tabs: z.ZodOptional<z.ZodArray<z.ZodObject<{
2166
+ icon: z.ZodOptional<z.ZodString>;
2167
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
2168
+ description: z.ZodOptional<z.ZodString>;
2169
+ icon: z.ZodOptional<z.ZodString>;
2170
+ label: z.ZodString;
2171
+ path: z.ZodString;
2172
+ tag: z.ZodOptional<z.ZodString>;
2173
+ }, "strict", z.ZodTypeAny, {
2174
+ path: string;
2175
+ label: string;
2176
+ icon?: string | undefined;
2177
+ description?: string | undefined;
2178
+ tag?: string | undefined;
2179
+ }, {
2180
+ path: string;
2181
+ label: string;
2182
+ icon?: string | undefined;
2183
+ description?: string | undefined;
2184
+ tag?: string | undefined;
2185
+ }>, "many">>;
2186
+ label: z.ZodString;
2187
+ path: z.ZodString;
2188
+ }, "strict", z.ZodTypeAny, {
2189
+ path: string;
2190
+ label: string;
2191
+ icon?: string | undefined;
2192
+ items?: {
2193
+ path: string;
2194
+ label: string;
2195
+ icon?: string | undefined;
2196
+ description?: string | undefined;
2197
+ tag?: string | undefined;
2198
+ }[] | undefined;
2199
+ }, {
2200
+ path: string;
2201
+ label: string;
2202
+ icon?: string | undefined;
2203
+ items?: {
2204
+ path: string;
2205
+ label: string;
2206
+ icon?: string | undefined;
2207
+ description?: string | undefined;
2208
+ tag?: string | undefined;
2209
+ }[] | undefined;
2210
+ }>, "many">>;
2211
+ }, "strict", z.ZodTypeAny, {
2212
+ repo: boolean;
2213
+ chromeVariants: {
2214
+ path: string;
2215
+ banner?: string | {
2216
+ content: string;
2217
+ dismissible: boolean;
2218
+ type?: "info" | "warning" | "critical" | undefined;
2219
+ id?: string | undefined;
2220
+ color?: {
2221
+ dark?: string | undefined;
2222
+ light?: string | undefined;
2223
+ } | undefined;
2224
+ link?: {
2225
+ href: string;
2226
+ text: string;
2227
+ } | undefined;
2228
+ } | undefined;
2229
+ footer?: {
2230
+ links: {
2231
+ items: {
2232
+ label: string;
2233
+ href: string;
2234
+ }[];
2235
+ header?: string | undefined;
2236
+ }[];
2237
+ socials: Record<string, string>;
2238
+ } | undefined;
2239
+ navbar?: {
2240
+ links: {
2241
+ href: string;
2242
+ type?: "github" | "discord" | undefined;
2243
+ label?: string | undefined;
2244
+ icon?: string | undefined;
2245
+ }[];
2246
+ primary?: {
2247
+ type: "button" | "github" | "discord";
2248
+ href: string;
2249
+ label?: string | undefined;
2250
+ } | undefined;
2251
+ } | undefined;
2252
+ }[];
2253
+ selectors: {
2254
+ label: string;
2255
+ items: {
2256
+ path: string;
2257
+ label: string;
2258
+ icon?: string | undefined;
2259
+ description?: string | undefined;
2260
+ tag?: string | undefined;
2261
+ }[];
2262
+ kind: "version" | "dropdown" | "language" | "product";
2263
+ }[];
2264
+ sidebarVariants: {
2265
+ path: string;
2266
+ items: SidebarItemConfig[];
2267
+ }[];
2268
+ sidebar?: SidebarItemConfig[] | undefined;
2269
+ tabs?: {
2270
+ path: string;
2271
+ label: string;
2272
+ icon?: string | undefined;
2273
+ items?: {
2274
+ path: string;
2275
+ label: string;
2276
+ icon?: string | undefined;
2277
+ description?: string | undefined;
2278
+ tag?: string | undefined;
2279
+ }[] | undefined;
2280
+ }[] | undefined;
2281
+ }, {
2282
+ sidebar?: SidebarItemConfig[] | undefined;
2283
+ repo?: boolean | undefined;
2284
+ chromeVariants?: {
2285
+ path: string;
2286
+ banner?: string | {
2287
+ content: string;
2288
+ type?: "info" | "warning" | "critical" | undefined;
2289
+ id?: string | undefined;
2290
+ color?: {
2291
+ dark?: string | undefined;
2292
+ light?: string | undefined;
2293
+ } | undefined;
2294
+ dismissible?: boolean | undefined;
2295
+ link?: {
2296
+ href: string;
2297
+ text: string;
2298
+ } | undefined;
2299
+ } | undefined;
2300
+ footer?: {
2301
+ links?: {
2302
+ items?: {
2303
+ label: string;
2304
+ href: string;
2305
+ }[] | undefined;
2306
+ header?: string | undefined;
2307
+ }[] | undefined;
2308
+ socials?: Record<string, string> | undefined;
2309
+ } | undefined;
2310
+ navbar?: {
2311
+ links?: {
2312
+ href: string;
2313
+ type?: "github" | "discord" | undefined;
2314
+ label?: string | undefined;
2315
+ icon?: string | undefined;
2316
+ }[] | undefined;
2317
+ primary?: {
2318
+ href: string;
2319
+ type?: "button" | "github" | "discord" | undefined;
2320
+ label?: string | undefined;
2321
+ } | undefined;
2322
+ } | undefined;
2323
+ }[] | undefined;
2324
+ selectors?: {
2325
+ label: string;
2326
+ kind: "version" | "dropdown" | "language" | "product";
2327
+ items?: {
2328
+ path: string;
2329
+ label: string;
2330
+ icon?: string | undefined;
2331
+ description?: string | undefined;
2332
+ tag?: string | undefined;
2333
+ }[] | undefined;
2334
+ }[] | undefined;
2335
+ sidebarVariants?: {
2336
+ path: string;
2337
+ items?: SidebarItemConfig[] | undefined;
2338
+ }[] | undefined;
2339
+ tabs?: {
2340
+ path: string;
2341
+ label: string;
2342
+ icon?: string | undefined;
2343
+ items?: {
2344
+ path: string;
2345
+ label: string;
2346
+ icon?: string | undefined;
2347
+ description?: string | undefined;
2348
+ tag?: string | undefined;
2349
+ }[] | undefined;
2350
+ }[] | undefined;
2351
+ }>>;
2352
+ openapi: z.ZodDefault<z.ZodObject<{
2353
+ enabled: z.ZodDefault<z.ZodBoolean>;
2354
+ /** Where the reference mounts. */
2355
+ route: z.ZodDefault<z.ZodString>;
2356
+ /** One or more specs; each renders on its own route by default. */
2357
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
2358
+ /** Nav/section label for this source. */
2359
+ label: z.ZodOptional<z.ZodString>;
2360
+ /** Per-source route; defaults to the block's `route` (or a derived path). */
2361
+ route: z.ZodOptional<z.ZodString>;
2362
+ /** Local path or `http(s)` URL to the spec. */
2363
+ spec: z.ZodString;
2364
+ }, "strict", z.ZodTypeAny, {
2365
+ spec: string;
2366
+ label?: string | undefined;
2367
+ route?: string | undefined;
2368
+ }, {
2369
+ spec: string;
2370
+ label?: string | undefined;
2371
+ route?: string | undefined;
2372
+ }>, "many">>;
2373
+ /** Shorthand for a single source: `sources: [{ spec }]`. */
2374
+ spec: z.ZodOptional<z.ZodString>;
2375
+ /** Scalar theme name; defaults to a Blume-derived accent override. */
2376
+ theme: z.ZodOptional<z.ZodString>;
2377
+ }, "strict", z.ZodTypeAny, {
2378
+ sources: {
2379
+ spec: string;
2380
+ label?: string | undefined;
2381
+ route?: string | undefined;
2382
+ }[];
2383
+ enabled: boolean;
2384
+ route: string;
2385
+ theme?: string | undefined;
2386
+ spec?: string | undefined;
2387
+ }, {
2388
+ sources?: {
2389
+ spec: string;
2390
+ label?: string | undefined;
2391
+ route?: string | undefined;
2392
+ }[] | undefined;
2393
+ enabled?: boolean | undefined;
2394
+ route?: string | undefined;
2395
+ theme?: string | undefined;
2396
+ spec?: string | undefined;
2397
+ }>>;
2398
+ redirects: z.ZodDefault<z.ZodArray<z.ZodObject<{
2399
+ from: z.ZodString;
2400
+ status: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<301>, z.ZodLiteral<302>, z.ZodLiteral<307>, z.ZodLiteral<308>]>>;
2401
+ to: z.ZodString;
2402
+ }, "strict", z.ZodTypeAny, {
2403
+ status: 301 | 302 | 307 | 308;
2404
+ from: string;
2405
+ to: string;
2406
+ }, {
2407
+ from: string;
2408
+ to: string;
2409
+ status?: 301 | 302 | 307 | 308 | undefined;
2410
+ }>, "many">>;
2411
+ search: z.ZodDefault<z.ZodEffects<z.ZodObject<{
2412
+ algolia: z.ZodOptional<z.ZodObject<{
2413
+ appId: z.ZodString;
2414
+ indexName: z.ZodString;
2415
+ searchApiKey: z.ZodString;
2416
+ }, "strict", z.ZodTypeAny, {
2417
+ appId: string;
2418
+ indexName: string;
2419
+ searchApiKey: string;
2420
+ }, {
2421
+ appId: string;
2422
+ indexName: string;
2423
+ searchApiKey: string;
2424
+ }>>;
2425
+ indexing: z.ZodDefault<z.ZodObject<{
2426
+ includeHiddenPages: z.ZodDefault<z.ZodBoolean>;
2427
+ }, "strict", z.ZodTypeAny, {
2428
+ includeHiddenPages: boolean;
2429
+ }, {
2430
+ includeHiddenPages?: boolean | undefined;
2431
+ }>>;
2432
+ mixedbread: z.ZodOptional<z.ZodObject<{
2433
+ storeId: z.ZodString;
2434
+ }, "strict", z.ZodTypeAny, {
2435
+ storeId: string;
2436
+ }, {
2437
+ storeId: string;
2438
+ }>>;
2439
+ oramaCloud: z.ZodOptional<z.ZodObject<{
2440
+ apiKey: z.ZodString;
2441
+ endpoint: z.ZodString;
2442
+ /** Index id used by the build-time sync (with `ORAMA_PRIVATE_API_KEY`). */
2443
+ indexId: z.ZodOptional<z.ZodString>;
2444
+ }, "strict", z.ZodTypeAny, {
2445
+ apiKey: string;
2446
+ endpoint: string;
2447
+ indexId?: string | undefined;
2448
+ }, {
2449
+ apiKey: string;
2450
+ endpoint: string;
2451
+ indexId?: string | undefined;
2452
+ }>>;
2453
+ prompt: z.ZodOptional<z.ZodString>;
2454
+ provider: z.ZodDefault<z.ZodEnum<["orama", "pagefind", "flexsearch", "algolia", "orama-cloud", "typesense", "mixedbread", "none"]>>;
2455
+ typesense: z.ZodOptional<z.ZodObject<{
2456
+ collection: z.ZodString;
2457
+ host: z.ZodString;
2458
+ port: z.ZodOptional<z.ZodNumber>;
2459
+ protocol: z.ZodOptional<z.ZodEnum<["http", "https"]>>;
2460
+ searchApiKey: z.ZodString;
2461
+ }, "strict", z.ZodTypeAny, {
2462
+ searchApiKey: string;
2463
+ collection: string;
2464
+ host: string;
2465
+ port?: number | undefined;
2466
+ protocol?: "http" | "https" | undefined;
2467
+ }, {
2468
+ searchApiKey: string;
2469
+ collection: string;
2470
+ host: string;
2471
+ port?: number | undefined;
2472
+ protocol?: "http" | "https" | undefined;
2473
+ }>>;
2474
+ }, "strict", z.ZodTypeAny, {
2475
+ indexing: {
2476
+ includeHiddenPages: boolean;
2477
+ };
2478
+ provider: "none" | "orama" | "pagefind" | "flexsearch" | "algolia" | "orama-cloud" | "typesense" | "mixedbread";
2479
+ algolia?: {
2480
+ appId: string;
2481
+ indexName: string;
2482
+ searchApiKey: string;
2483
+ } | undefined;
2484
+ typesense?: {
2485
+ searchApiKey: string;
2486
+ collection: string;
2487
+ host: string;
2488
+ port?: number | undefined;
2489
+ protocol?: "http" | "https" | undefined;
2490
+ } | undefined;
2491
+ mixedbread?: {
2492
+ storeId: string;
2493
+ } | undefined;
2494
+ oramaCloud?: {
2495
+ apiKey: string;
2496
+ endpoint: string;
2497
+ indexId?: string | undefined;
2498
+ } | undefined;
2499
+ prompt?: string | undefined;
2500
+ }, {
2501
+ algolia?: {
2502
+ appId: string;
2503
+ indexName: string;
2504
+ searchApiKey: string;
2505
+ } | undefined;
2506
+ typesense?: {
2507
+ searchApiKey: string;
2508
+ collection: string;
2509
+ host: string;
2510
+ port?: number | undefined;
2511
+ protocol?: "http" | "https" | undefined;
2512
+ } | undefined;
2513
+ mixedbread?: {
2514
+ storeId: string;
2515
+ } | undefined;
2516
+ oramaCloud?: {
2517
+ apiKey: string;
2518
+ endpoint: string;
2519
+ indexId?: string | undefined;
2520
+ } | undefined;
2521
+ indexing?: {
2522
+ includeHiddenPages?: boolean | undefined;
2523
+ } | undefined;
2524
+ prompt?: string | undefined;
2525
+ provider?: "none" | "orama" | "pagefind" | "flexsearch" | "algolia" | "orama-cloud" | "typesense" | "mixedbread" | undefined;
2526
+ }>, {
2527
+ indexing: {
2528
+ includeHiddenPages: boolean;
2529
+ };
2530
+ provider: "none" | "orama" | "pagefind" | "flexsearch" | "algolia" | "orama-cloud" | "typesense" | "mixedbread";
2531
+ algolia?: {
2532
+ appId: string;
2533
+ indexName: string;
2534
+ searchApiKey: string;
2535
+ } | undefined;
2536
+ typesense?: {
2537
+ searchApiKey: string;
2538
+ collection: string;
2539
+ host: string;
2540
+ port?: number | undefined;
2541
+ protocol?: "http" | "https" | undefined;
2542
+ } | undefined;
2543
+ mixedbread?: {
2544
+ storeId: string;
2545
+ } | undefined;
2546
+ oramaCloud?: {
2547
+ apiKey: string;
2548
+ endpoint: string;
2549
+ indexId?: string | undefined;
2550
+ } | undefined;
2551
+ prompt?: string | undefined;
2552
+ }, {
2553
+ algolia?: {
2554
+ appId: string;
2555
+ indexName: string;
2556
+ searchApiKey: string;
2557
+ } | undefined;
2558
+ typesense?: {
2559
+ searchApiKey: string;
2560
+ collection: string;
2561
+ host: string;
2562
+ port?: number | undefined;
2563
+ protocol?: "http" | "https" | undefined;
2564
+ } | undefined;
2565
+ mixedbread?: {
2566
+ storeId: string;
2567
+ } | undefined;
2568
+ oramaCloud?: {
2569
+ apiKey: string;
2570
+ endpoint: string;
2571
+ indexId?: string | undefined;
2572
+ } | undefined;
2573
+ indexing?: {
2574
+ includeHiddenPages?: boolean | undefined;
2575
+ } | undefined;
2576
+ prompt?: string | undefined;
2577
+ provider?: "none" | "orama" | "pagefind" | "flexsearch" | "algolia" | "orama-cloud" | "typesense" | "mixedbread" | undefined;
2578
+ }>>;
2579
+ seo: z.ZodDefault<z.ZodObject<{
2580
+ metatags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
2581
+ og: z.ZodDefault<z.ZodObject<{
2582
+ /**
2583
+ * Generate a per-page Open Graph image. Defaults to on once a deployment
2584
+ * site URL is known (set or auto-detected) and off otherwise, since
2585
+ * `og:image` must be absolute to be useful to crawlers — resolved in
2586
+ * `loadConfig`. An explicit value here always wins.
2587
+ */
2588
+ enabled: z.ZodOptional<z.ZodBoolean>;
2589
+ }, "strict", z.ZodTypeAny, {
2590
+ enabled?: boolean | undefined;
2591
+ }, {
2592
+ enabled?: boolean | undefined;
2593
+ }>>;
2594
+ /** Generate robots.txt (with a Sitemap reference when available). */
2595
+ robots: z.ZodDefault<z.ZodBoolean>;
2596
+ rss: z.ZodDefault<z.ZodObject<{
2597
+ enabled: z.ZodDefault<z.ZodBoolean>;
2598
+ /** Max items per feed, newest first. */
2599
+ limit: z.ZodDefault<z.ZodNumber>;
2600
+ /** Content types that each get a feed at `/<type>/rss.xml`. */
2601
+ types: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2602
+ }, "strict", z.ZodTypeAny, {
2603
+ enabled: boolean;
2604
+ limit: number;
2605
+ types: string[];
2606
+ }, {
2607
+ enabled?: boolean | undefined;
2608
+ limit?: number | undefined;
2609
+ types?: string[] | undefined;
2610
+ }>>;
2611
+ /** Generate sitemap.xml (requires deployment.site). */
2612
+ sitemap: z.ZodDefault<z.ZodBoolean>;
2613
+ /** Emit schema.org JSON-LD in each page's <head>. */
2614
+ structuredData: z.ZodDefault<z.ZodBoolean>;
2615
+ }, "strict", z.ZodTypeAny, {
2616
+ rss: {
2617
+ enabled: boolean;
2618
+ limit: number;
2619
+ types: string[];
2620
+ };
2621
+ metatags: Record<string, string>;
2622
+ og: {
2623
+ enabled?: boolean | undefined;
2624
+ };
2625
+ robots: boolean;
2626
+ sitemap: boolean;
2627
+ structuredData: boolean;
2628
+ }, {
2629
+ rss?: {
2630
+ enabled?: boolean | undefined;
2631
+ limit?: number | undefined;
2632
+ types?: string[] | undefined;
2633
+ } | undefined;
2634
+ metatags?: Record<string, string> | undefined;
2635
+ og?: {
2636
+ enabled?: boolean | undefined;
2637
+ } | undefined;
2638
+ robots?: boolean | undefined;
2639
+ sitemap?: boolean | undefined;
2640
+ structuredData?: boolean | undefined;
2641
+ }>>;
2642
+ styling: z.ZodDefault<z.ZodObject<{
2643
+ eyebrows: z.ZodDefault<z.ZodEnum<["breadcrumbs", "section"]>>;
2644
+ }, "strict", z.ZodTypeAny, {
2645
+ eyebrows: "breadcrumbs" | "section";
2646
+ }, {
2647
+ eyebrows?: "breadcrumbs" | "section" | undefined;
2648
+ }>>;
2649
+ theme: z.ZodDefault<z.ZodObject<{
2650
+ accent: z.ZodDefault<z.ZodString>;
2651
+ accentDark: z.ZodOptional<z.ZodString>;
2652
+ action: z.ZodOptional<z.ZodString>;
2653
+ background: z.ZodOptional<z.ZodString>;
2654
+ backgroundDark: z.ZodOptional<z.ZodString>;
2655
+ backgroundDecoration: z.ZodOptional<z.ZodEnum<["gradient", "grid", "windows"]>>;
2656
+ backgroundImage: z.ZodOptional<z.ZodString>;
2657
+ backgroundImageDark: z.ZodOptional<z.ZodString>;
2658
+ fonts: z.ZodDefault<z.ZodObject<{
2659
+ body: z.ZodDefault<z.ZodEffects<z.ZodString, "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans", string>>;
2660
+ display: z.ZodDefault<z.ZodEffects<z.ZodString, "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans", string>>;
2661
+ mono: z.ZodDefault<z.ZodEffects<z.ZodString, "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans", string>>;
2662
+ }, "strict", z.ZodTypeAny, {
2663
+ mono: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2664
+ display: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2665
+ body: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2666
+ }, {
2667
+ mono?: string | undefined;
2668
+ display?: string | undefined;
2669
+ body?: string | undefined;
2670
+ }>>;
2671
+ layout: z.ZodDefault<z.ZodEnum<["sidebar"]>>;
2672
+ mode: z.ZodDefault<z.ZodEnum<["system", "light", "dark"]>>;
2673
+ radius: z.ZodDefault<z.ZodEnum<["none", "sm", "md", "lg"]>>;
2674
+ strict: z.ZodDefault<z.ZodBoolean>;
2675
+ }, "strict", z.ZodTypeAny, {
2676
+ strict: boolean;
2677
+ mode: "dark" | "light" | "system";
2678
+ accent: string;
2679
+ fonts: {
2680
+ mono: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2681
+ display: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2682
+ body: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2683
+ };
2684
+ layout: "sidebar";
2685
+ radius: "md" | "none" | "sm" | "lg";
2686
+ accentDark?: string | undefined;
2687
+ action?: string | undefined;
2688
+ background?: string | undefined;
2689
+ backgroundDark?: string | undefined;
2690
+ backgroundDecoration?: "gradient" | "grid" | "windows" | undefined;
2691
+ backgroundImage?: string | undefined;
2692
+ backgroundImageDark?: string | undefined;
2693
+ }, {
2694
+ strict?: boolean | undefined;
2695
+ mode?: "dark" | "light" | "system" | undefined;
2696
+ accent?: string | undefined;
2697
+ accentDark?: string | undefined;
2698
+ action?: string | undefined;
2699
+ background?: string | undefined;
2700
+ backgroundDark?: string | undefined;
2701
+ backgroundDecoration?: "gradient" | "grid" | "windows" | undefined;
2702
+ backgroundImage?: string | undefined;
2703
+ backgroundImageDark?: string | undefined;
2704
+ fonts?: {
2705
+ mono?: string | undefined;
2706
+ display?: string | undefined;
2707
+ body?: string | undefined;
2708
+ } | undefined;
2709
+ layout?: "sidebar" | undefined;
2710
+ radius?: "md" | "none" | "sm" | "lg" | undefined;
2711
+ }>>;
2712
+ title: z.ZodDefault<z.ZodString>;
2713
+ variables: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
2714
+ }, "strict", z.ZodTypeAny, {
2715
+ title: string;
2716
+ feedback: boolean;
2717
+ search: {
2718
+ indexing: {
2719
+ includeHiddenPages: boolean;
2720
+ };
2721
+ provider: "none" | "orama" | "pagefind" | "flexsearch" | "algolia" | "orama-cloud" | "typesense" | "mixedbread";
2722
+ algolia?: {
2723
+ appId: string;
2724
+ indexName: string;
2725
+ searchApiKey: string;
2726
+ } | undefined;
2727
+ typesense?: {
2728
+ searchApiKey: string;
2729
+ collection: string;
2730
+ host: string;
2731
+ port?: number | undefined;
2732
+ protocol?: "http" | "https" | undefined;
2733
+ } | undefined;
2734
+ mixedbread?: {
2735
+ storeId: string;
2736
+ } | undefined;
2737
+ oramaCloud?: {
2738
+ apiKey: string;
2739
+ endpoint: string;
2740
+ indexId?: string | undefined;
2741
+ } | undefined;
2742
+ prompt?: string | undefined;
2743
+ };
2744
+ lastModified: boolean | {
2745
+ type: "git" | "frontmatter";
2746
+ };
2747
+ seo: {
2748
+ rss: {
2749
+ enabled: boolean;
2750
+ limit: number;
2751
+ types: string[];
2752
+ };
2753
+ metatags: Record<string, string>;
2754
+ og: {
2755
+ enabled?: boolean | undefined;
2756
+ };
2757
+ robots: boolean;
2758
+ sitemap: boolean;
2759
+ structuredData: boolean;
2760
+ };
2761
+ content: {
2762
+ exclude: string[];
2763
+ pages: string;
2764
+ include: string[];
2765
+ root: string;
2766
+ defaultType: string;
2767
+ sources?: ({
2768
+ type: "filesystem";
2769
+ exclude: string[];
2770
+ include: string[];
2771
+ root: string;
2772
+ prefix?: string | undefined;
2773
+ } | {
2774
+ type: "mdx-remote";
2775
+ include: string[];
2776
+ url?: string | undefined;
2777
+ prefix?: string | undefined;
2778
+ files?: string[] | undefined;
2779
+ github?: {
2780
+ path: string;
2781
+ owner: string;
2782
+ ref: string;
2783
+ repo: string;
2784
+ } | undefined;
2785
+ pollInterval?: number | undefined;
2786
+ } | {
2787
+ type: "sanity";
2788
+ dataset: string;
2789
+ projectId: string;
2790
+ query: string;
2791
+ prefix?: string | undefined;
2792
+ pollInterval?: number | undefined;
2793
+ apiVersion?: string | undefined;
2794
+ fields?: {
2795
+ body?: string | undefined;
2796
+ title?: string | undefined;
2797
+ description?: string | undefined;
2798
+ lastModified?: string | undefined;
2799
+ slug?: string | undefined;
2800
+ } | undefined;
2801
+ } | {
2802
+ type: "notion";
2803
+ database: string;
2804
+ prefix?: string | undefined;
2805
+ pollInterval?: number | undefined;
2806
+ properties?: {
2807
+ status?: string | undefined;
2808
+ title?: string | undefined;
2809
+ order?: string | undefined;
2810
+ description?: string | undefined;
2811
+ slug?: string | undefined;
2812
+ } | undefined;
2813
+ publishedValue?: string | undefined;
2814
+ } | {
2815
+ type: "mintlify";
2816
+ exclude: string[];
2817
+ include: string[];
2818
+ root: string;
2819
+ variables: Record<string, string>;
2820
+ prefix?: string | undefined;
2821
+ configFile?: string | undefined;
2822
+ } | {
2823
+ type: "custom";
2824
+ source: ContentSource;
2825
+ })[] | undefined;
2826
+ };
2827
+ variables: Record<string, string>;
2828
+ footer: {
2829
+ links: {
2830
+ items: {
2831
+ label: string;
2832
+ href: string;
2833
+ }[];
2834
+ header?: string | undefined;
2835
+ }[];
2836
+ socials: Record<string, string>;
2837
+ };
2838
+ navbar: {
2839
+ links: {
2840
+ href: string;
2841
+ type?: "github" | "discord" | undefined;
2842
+ label?: string | undefined;
2843
+ icon?: string | undefined;
2844
+ }[];
2845
+ primary?: {
2846
+ type: "button" | "github" | "discord";
2847
+ href: string;
2848
+ label?: string | undefined;
2849
+ } | undefined;
2850
+ };
2851
+ theme: {
2852
+ strict: boolean;
2853
+ mode: "dark" | "light" | "system";
2854
+ accent: string;
2855
+ fonts: {
2856
+ mono: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2857
+ display: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2858
+ body: "dm-sans" | "figtree" | "fira-code" | "geist" | "geist-mono" | "ibm-plex-mono" | "ibm-plex-sans" | "ibm-plex-serif" | "inter" | "inter-tight" | "jetbrains-mono" | "lora" | "manrope" | "merriweather" | "open-sans" | "playfair-display" | "plus-jakarta-sans" | "roboto" | "roboto-mono" | "source-code-pro" | "source-sans-3" | "source-serif-4" | "space-grotesk" | "space-mono" | "work-sans";
2859
+ };
2860
+ layout: "sidebar";
2861
+ radius: "md" | "none" | "sm" | "lg";
2862
+ accentDark?: string | undefined;
2863
+ action?: string | undefined;
2864
+ background?: string | undefined;
2865
+ backgroundDark?: string | undefined;
2866
+ backgroundDecoration?: "gradient" | "grid" | "windows" | undefined;
2867
+ backgroundImage?: string | undefined;
2868
+ backgroundImageDark?: string | undefined;
2869
+ };
2870
+ icons: {
2871
+ library: "fontawesome" | "lucide" | "tabler";
2872
+ };
2873
+ ai: {
2874
+ llmsTxt: boolean;
2875
+ ask?: {
2876
+ provider: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible";
2877
+ enabled: boolean;
2878
+ model: string;
2879
+ apiKeyEnv?: string | undefined;
2880
+ baseUrl?: string | undefined;
2881
+ } | undefined;
2882
+ };
2883
+ asyncapi: {
2884
+ sources: {
2885
+ spec: string;
2886
+ label?: string | undefined;
2887
+ route?: string | undefined;
2888
+ }[];
2889
+ enabled: boolean;
2890
+ route: string;
2891
+ theme?: string | undefined;
2892
+ spec?: string | undefined;
2893
+ };
2894
+ contextual: {
2895
+ display: "toc" | "header";
2896
+ options: (string | z.objectOutputType<{
2897
+ description: z.ZodOptional<z.ZodString>;
2898
+ href: z.ZodOptional<z.ZodString>;
2899
+ icon: z.ZodOptional<z.ZodString>;
2900
+ title: z.ZodString;
2901
+ }, z.ZodTypeAny, "passthrough">)[];
2902
+ };
2903
+ deployment: {
2904
+ adapter: "vercel" | "node" | "netlify" | "cloudflare" | null;
2905
+ output: "static" | "server";
2906
+ base?: string | undefined;
2907
+ site?: string | undefined;
2908
+ };
2909
+ examples: string;
2910
+ export: {
2911
+ epub: boolean;
2912
+ pdf: boolean;
2913
+ };
2914
+ markdown: {
2915
+ code: {
2916
+ icons: boolean;
2917
+ inline: boolean;
2918
+ wrap: boolean;
2919
+ };
2920
+ codeBlocks: {
2921
+ theme: {
2922
+ dark: string;
2923
+ light: string;
2924
+ };
2925
+ };
2926
+ headingAnchors: boolean;
2927
+ imageZoom: boolean;
2928
+ math: boolean;
2929
+ };
2930
+ mcp: {
2931
+ enabled: boolean;
2932
+ route: string;
2933
+ instructions?: string | undefined;
2934
+ name?: string | undefined;
2935
+ };
2936
+ navigation: {
2937
+ repo: boolean;
2938
+ chromeVariants: {
2939
+ path: string;
2940
+ banner?: string | {
2941
+ content: string;
2942
+ dismissible: boolean;
2943
+ type?: "info" | "warning" | "critical" | undefined;
2944
+ id?: string | undefined;
2945
+ color?: {
2946
+ dark?: string | undefined;
2947
+ light?: string | undefined;
2948
+ } | undefined;
2949
+ link?: {
2950
+ href: string;
2951
+ text: string;
2952
+ } | undefined;
2953
+ } | undefined;
2954
+ footer?: {
2955
+ links: {
2956
+ items: {
2957
+ label: string;
2958
+ href: string;
2959
+ }[];
2960
+ header?: string | undefined;
2961
+ }[];
2962
+ socials: Record<string, string>;
2963
+ } | undefined;
2964
+ navbar?: {
2965
+ links: {
2966
+ href: string;
2967
+ type?: "github" | "discord" | undefined;
2968
+ label?: string | undefined;
2969
+ icon?: string | undefined;
2970
+ }[];
2971
+ primary?: {
2972
+ type: "button" | "github" | "discord";
2973
+ href: string;
2974
+ label?: string | undefined;
2975
+ } | undefined;
2976
+ } | undefined;
2977
+ }[];
2978
+ selectors: {
2979
+ label: string;
2980
+ items: {
2981
+ path: string;
2982
+ label: string;
2983
+ icon?: string | undefined;
2984
+ description?: string | undefined;
2985
+ tag?: string | undefined;
2986
+ }[];
2987
+ kind: "version" | "dropdown" | "language" | "product";
2988
+ }[];
2989
+ sidebarVariants: {
2990
+ path: string;
2991
+ items: SidebarItemConfig[];
2992
+ }[];
2993
+ sidebar?: SidebarItemConfig[] | undefined;
2994
+ tabs?: {
2995
+ path: string;
2996
+ label: string;
2997
+ icon?: string | undefined;
2998
+ items?: {
2999
+ path: string;
3000
+ label: string;
3001
+ icon?: string | undefined;
3002
+ description?: string | undefined;
3003
+ tag?: string | undefined;
3004
+ }[] | undefined;
3005
+ }[] | undefined;
3006
+ };
3007
+ openapi: {
3008
+ sources: {
3009
+ spec: string;
3010
+ label?: string | undefined;
3011
+ route?: string | undefined;
3012
+ }[];
3013
+ enabled: boolean;
3014
+ route: string;
3015
+ theme?: string | undefined;
3016
+ spec?: string | undefined;
3017
+ };
3018
+ redirects: {
3019
+ status: 301 | 302 | 307 | 308;
3020
+ from: string;
3021
+ to: string;
3022
+ }[];
3023
+ styling: {
3024
+ eyebrows: "breadcrumbs" | "section";
3025
+ };
3026
+ description?: string | undefined;
3027
+ github?: {
3028
+ owner: string;
3029
+ repo: string;
3030
+ branch: string;
3031
+ dir?: string | undefined;
3032
+ } | undefined;
3033
+ banner?: string | {
3034
+ content: string;
3035
+ dismissible: boolean;
3036
+ type?: "info" | "warning" | "critical" | undefined;
3037
+ id?: string | undefined;
3038
+ color?: {
3039
+ dark?: string | undefined;
3040
+ light?: string | undefined;
3041
+ } | undefined;
3042
+ link?: {
3043
+ href: string;
3044
+ text: string;
3045
+ } | undefined;
3046
+ } | undefined;
3047
+ analytics?: {
3048
+ posthog?: {
3049
+ key: string;
3050
+ host?: string | undefined;
3051
+ } | undefined;
3052
+ scripts?: {
3053
+ content?: string | undefined;
3054
+ attributes?: Record<string, string> | undefined;
3055
+ src?: string | undefined;
3056
+ strategy?: "async" | "defer" | undefined;
3057
+ }[] | undefined;
3058
+ vercel?: boolean | undefined;
3059
+ } | undefined;
3060
+ favicon?: string | {
3061
+ dark?: string | undefined;
3062
+ light?: string | undefined;
3063
+ } | undefined;
3064
+ i18n?: {
3065
+ defaultLocale: string;
3066
+ hideDefaultLocalePrefix: boolean;
3067
+ locales: {
3068
+ code: string;
3069
+ label: string;
3070
+ dir: "ltr" | "rtl";
3071
+ }[];
3072
+ parser: "dir" | "dot";
3073
+ fallbackLocale?: string | null | undefined;
3074
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
3075
+ } | undefined;
3076
+ logo?: string | {
3077
+ alt?: string | undefined;
3078
+ dark?: string | undefined;
3079
+ href?: string | undefined;
3080
+ light?: string | undefined;
3081
+ } | undefined;
3082
+ }, {
3083
+ title?: string | undefined;
3084
+ feedback?: boolean | undefined;
3085
+ search?: {
3086
+ algolia?: {
3087
+ appId: string;
3088
+ indexName: string;
3089
+ searchApiKey: string;
3090
+ } | undefined;
3091
+ typesense?: {
3092
+ searchApiKey: string;
3093
+ collection: string;
3094
+ host: string;
3095
+ port?: number | undefined;
3096
+ protocol?: "http" | "https" | undefined;
3097
+ } | undefined;
3098
+ mixedbread?: {
3099
+ storeId: string;
3100
+ } | undefined;
3101
+ oramaCloud?: {
3102
+ apiKey: string;
3103
+ endpoint: string;
3104
+ indexId?: string | undefined;
3105
+ } | undefined;
3106
+ indexing?: {
3107
+ includeHiddenPages?: boolean | undefined;
3108
+ } | undefined;
3109
+ prompt?: string | undefined;
3110
+ provider?: "none" | "orama" | "pagefind" | "flexsearch" | "algolia" | "orama-cloud" | "typesense" | "mixedbread" | undefined;
3111
+ } | undefined;
3112
+ description?: string | undefined;
3113
+ lastModified?: boolean | {
3114
+ type?: "git" | "frontmatter" | undefined;
3115
+ } | undefined;
3116
+ seo?: {
3117
+ rss?: {
3118
+ enabled?: boolean | undefined;
3119
+ limit?: number | undefined;
3120
+ types?: string[] | undefined;
3121
+ } | undefined;
3122
+ metatags?: Record<string, string> | undefined;
3123
+ og?: {
3124
+ enabled?: boolean | undefined;
3125
+ } | undefined;
3126
+ robots?: boolean | undefined;
3127
+ sitemap?: boolean | undefined;
3128
+ structuredData?: boolean | undefined;
3129
+ } | undefined;
3130
+ content?: {
3131
+ exclude?: string[] | undefined;
3132
+ pages?: string | undefined;
3133
+ include?: string[] | undefined;
3134
+ root?: string | undefined;
3135
+ defaultType?: string | undefined;
3136
+ sources?: ({
3137
+ type: "filesystem";
3138
+ exclude?: string[] | undefined;
3139
+ include?: string[] | undefined;
3140
+ prefix?: string | undefined;
3141
+ root?: string | undefined;
3142
+ } | {
3143
+ type: "mdx-remote";
3144
+ url?: string | undefined;
3145
+ include?: string[] | undefined;
3146
+ prefix?: string | undefined;
3147
+ files?: string[] | undefined;
3148
+ github?: {
3149
+ owner: string;
3150
+ repo: string;
3151
+ path?: string | undefined;
3152
+ ref?: string | undefined;
3153
+ } | undefined;
3154
+ pollInterval?: number | undefined;
3155
+ } | {
3156
+ type: "sanity";
3157
+ dataset: string;
3158
+ projectId: string;
3159
+ query: string;
3160
+ prefix?: string | undefined;
3161
+ pollInterval?: number | undefined;
3162
+ apiVersion?: string | undefined;
3163
+ fields?: {
3164
+ body?: string | undefined;
3165
+ title?: string | undefined;
3166
+ description?: string | undefined;
3167
+ lastModified?: string | undefined;
3168
+ slug?: string | undefined;
3169
+ } | undefined;
3170
+ } | {
3171
+ type: "notion";
3172
+ database: string;
3173
+ prefix?: string | undefined;
3174
+ pollInterval?: number | undefined;
3175
+ properties?: {
3176
+ status?: string | undefined;
3177
+ title?: string | undefined;
3178
+ order?: string | undefined;
3179
+ description?: string | undefined;
3180
+ slug?: string | undefined;
3181
+ } | undefined;
3182
+ publishedValue?: string | undefined;
3183
+ } | {
3184
+ type: "mintlify";
3185
+ exclude?: string[] | undefined;
3186
+ include?: string[] | undefined;
3187
+ prefix?: string | undefined;
3188
+ root?: string | undefined;
3189
+ configFile?: string | undefined;
3190
+ variables?: Record<string, string> | undefined;
3191
+ } | {
3192
+ type: "custom";
3193
+ source: ContentSource;
3194
+ })[] | undefined;
3195
+ } | undefined;
3196
+ github?: {
3197
+ owner: string;
3198
+ repo: string;
3199
+ dir?: string | undefined;
3200
+ branch?: string | undefined;
3201
+ } | undefined;
3202
+ variables?: Record<string, string> | undefined;
3203
+ banner?: string | {
3204
+ content: string;
3205
+ type?: "info" | "warning" | "critical" | undefined;
3206
+ id?: string | undefined;
3207
+ color?: {
3208
+ dark?: string | undefined;
3209
+ light?: string | undefined;
3210
+ } | undefined;
3211
+ dismissible?: boolean | undefined;
3212
+ link?: {
3213
+ href: string;
3214
+ text: string;
3215
+ } | undefined;
3216
+ } | undefined;
3217
+ footer?: {
3218
+ links?: {
3219
+ items?: {
3220
+ label: string;
3221
+ href: string;
3222
+ }[] | undefined;
3223
+ header?: string | undefined;
3224
+ }[] | undefined;
3225
+ socials?: Record<string, string> | undefined;
3226
+ } | undefined;
3227
+ navbar?: {
3228
+ links?: {
3229
+ href: string;
3230
+ type?: "github" | "discord" | undefined;
3231
+ label?: string | undefined;
3232
+ icon?: string | undefined;
3233
+ }[] | undefined;
3234
+ primary?: {
3235
+ href: string;
3236
+ type?: "button" | "github" | "discord" | undefined;
3237
+ label?: string | undefined;
3238
+ } | undefined;
3239
+ } | undefined;
3240
+ theme?: {
3241
+ strict?: boolean | undefined;
3242
+ mode?: "dark" | "light" | "system" | undefined;
3243
+ accent?: string | undefined;
3244
+ accentDark?: string | undefined;
3245
+ action?: string | undefined;
3246
+ background?: string | undefined;
3247
+ backgroundDark?: string | undefined;
3248
+ backgroundDecoration?: "gradient" | "grid" | "windows" | undefined;
3249
+ backgroundImage?: string | undefined;
3250
+ backgroundImageDark?: string | undefined;
3251
+ fonts?: {
3252
+ mono?: string | undefined;
3253
+ display?: string | undefined;
3254
+ body?: string | undefined;
3255
+ } | undefined;
3256
+ layout?: "sidebar" | undefined;
3257
+ radius?: "md" | "none" | "sm" | "lg" | undefined;
3258
+ } | undefined;
3259
+ icons?: {
3260
+ library?: "fontawesome" | "lucide" | "tabler" | undefined;
3261
+ } | undefined;
3262
+ ai?: {
3263
+ ask?: {
3264
+ provider?: "gateway" | "openrouter" | "llmgateway" | "inkeep" | "openai-compatible" | undefined;
3265
+ apiKeyEnv?: string | undefined;
3266
+ baseUrl?: string | undefined;
3267
+ enabled?: boolean | undefined;
3268
+ model?: string | undefined;
3269
+ } | undefined;
3270
+ llmsTxt?: boolean | undefined;
3271
+ } | undefined;
3272
+ analytics?: {
3273
+ posthog?: {
3274
+ key: string;
3275
+ host?: string | undefined;
3276
+ } | undefined;
3277
+ scripts?: {
3278
+ content?: string | undefined;
3279
+ attributes?: Record<string, string> | undefined;
3280
+ src?: string | undefined;
3281
+ strategy?: "async" | "defer" | undefined;
3282
+ }[] | undefined;
3283
+ vercel?: boolean | undefined;
3284
+ } | undefined;
3285
+ asyncapi?: {
3286
+ sources?: {
3287
+ spec: string;
3288
+ label?: string | undefined;
3289
+ route?: string | undefined;
3290
+ }[] | undefined;
3291
+ enabled?: boolean | undefined;
3292
+ route?: string | undefined;
3293
+ theme?: string | undefined;
3294
+ spec?: string | undefined;
3295
+ } | undefined;
3296
+ contextual?: {
3297
+ display?: "toc" | "header" | undefined;
3298
+ options?: (string | z.objectInputType<{
3299
+ description: z.ZodOptional<z.ZodString>;
3300
+ href: z.ZodOptional<z.ZodString>;
3301
+ icon: z.ZodOptional<z.ZodString>;
3302
+ title: z.ZodString;
3303
+ }, z.ZodTypeAny, "passthrough">)[] | undefined;
3304
+ } | undefined;
3305
+ deployment?: {
3306
+ adapter?: "vercel" | "node" | "netlify" | "cloudflare" | null | undefined;
3307
+ base?: string | undefined;
3308
+ output?: "static" | "server" | undefined;
3309
+ site?: string | undefined;
3310
+ } | undefined;
3311
+ examples?: string | undefined;
3312
+ export?: boolean | {
3313
+ epub?: boolean | undefined;
3314
+ pdf?: boolean | undefined;
3315
+ } | undefined;
3316
+ favicon?: string | {
3317
+ dark?: string | undefined;
3318
+ light?: string | undefined;
3319
+ } | undefined;
3320
+ i18n?: {
3321
+ locales: {
3322
+ code: string;
3323
+ label: string;
3324
+ dir?: "ltr" | "rtl" | undefined;
3325
+ }[];
3326
+ defaultLocale?: string | undefined;
3327
+ fallbackLocale?: string | null | undefined;
3328
+ hideDefaultLocalePrefix?: boolean | undefined;
3329
+ parser?: "dir" | "dot" | undefined;
3330
+ ui?: Record<string, Record<string, Record<string, string>>> | undefined;
3331
+ } | undefined;
3332
+ logo?: string | {
3333
+ alt?: string | undefined;
3334
+ dark?: string | undefined;
3335
+ href?: string | undefined;
3336
+ light?: string | undefined;
3337
+ } | undefined;
3338
+ markdown?: {
3339
+ code?: {
3340
+ icons?: boolean | undefined;
3341
+ inline?: boolean | undefined;
3342
+ wrap?: boolean | undefined;
3343
+ } | undefined;
3344
+ codeBlocks?: {
3345
+ theme?: {
3346
+ dark?: string | undefined;
3347
+ light?: string | undefined;
3348
+ } | undefined;
3349
+ } | undefined;
3350
+ headingAnchors?: boolean | undefined;
3351
+ imageZoom?: boolean | undefined;
3352
+ math?: boolean | undefined;
3353
+ } | undefined;
3354
+ mcp?: {
3355
+ enabled?: boolean | undefined;
3356
+ instructions?: string | undefined;
3357
+ name?: string | undefined;
3358
+ route?: string | undefined;
3359
+ } | undefined;
3360
+ navigation?: {
3361
+ sidebar?: SidebarItemConfig[] | undefined;
3362
+ repo?: boolean | undefined;
3363
+ chromeVariants?: {
3364
+ path: string;
3365
+ banner?: string | {
3366
+ content: string;
3367
+ type?: "info" | "warning" | "critical" | undefined;
3368
+ id?: string | undefined;
3369
+ color?: {
3370
+ dark?: string | undefined;
3371
+ light?: string | undefined;
3372
+ } | undefined;
3373
+ dismissible?: boolean | undefined;
3374
+ link?: {
3375
+ href: string;
3376
+ text: string;
3377
+ } | undefined;
3378
+ } | undefined;
3379
+ footer?: {
3380
+ links?: {
3381
+ items?: {
3382
+ label: string;
3383
+ href: string;
3384
+ }[] | undefined;
3385
+ header?: string | undefined;
3386
+ }[] | undefined;
3387
+ socials?: Record<string, string> | undefined;
3388
+ } | undefined;
3389
+ navbar?: {
3390
+ links?: {
3391
+ href: string;
3392
+ type?: "github" | "discord" | undefined;
3393
+ label?: string | undefined;
3394
+ icon?: string | undefined;
3395
+ }[] | undefined;
3396
+ primary?: {
3397
+ href: string;
3398
+ type?: "button" | "github" | "discord" | undefined;
3399
+ label?: string | undefined;
3400
+ } | undefined;
3401
+ } | undefined;
3402
+ }[] | undefined;
3403
+ selectors?: {
3404
+ label: string;
3405
+ kind: "version" | "dropdown" | "language" | "product";
3406
+ items?: {
3407
+ path: string;
3408
+ label: string;
3409
+ icon?: string | undefined;
3410
+ description?: string | undefined;
3411
+ tag?: string | undefined;
3412
+ }[] | undefined;
3413
+ }[] | undefined;
3414
+ sidebarVariants?: {
3415
+ path: string;
3416
+ items?: SidebarItemConfig[] | undefined;
3417
+ }[] | undefined;
3418
+ tabs?: {
3419
+ path: string;
3420
+ label: string;
3421
+ icon?: string | undefined;
3422
+ items?: {
3423
+ path: string;
3424
+ label: string;
3425
+ icon?: string | undefined;
3426
+ description?: string | undefined;
3427
+ tag?: string | undefined;
3428
+ }[] | undefined;
3429
+ }[] | undefined;
3430
+ } | undefined;
3431
+ openapi?: {
3432
+ sources?: {
3433
+ spec: string;
3434
+ label?: string | undefined;
3435
+ route?: string | undefined;
3436
+ }[] | undefined;
3437
+ enabled?: boolean | undefined;
3438
+ route?: string | undefined;
3439
+ theme?: string | undefined;
3440
+ spec?: string | undefined;
3441
+ } | undefined;
3442
+ redirects?: {
3443
+ from: string;
3444
+ to: string;
3445
+ status?: 301 | 302 | 307 | 308 | undefined;
3446
+ }[] | undefined;
3447
+ styling?: {
3448
+ eyebrows?: "breadcrumbs" | "section" | undefined;
3449
+ } | undefined;
3450
+ }>;
3451
+ /** Resolved config: every field present after defaults are applied. */
3452
+ export type ResolvedConfig = z.infer<typeof blumeConfigSchema>;
3453
+ /** Resolved i18n block (present only when the project opts into i18n). */
3454
+ export type ResolvedI18nConfig = z.infer<typeof i18nConfigSchema>;
3455
+ /** A configured locale with display metadata. */
3456
+ export type LocaleConfig = z.infer<typeof localeSchema>;
3457
+ /** User-authored config: the shape accepted by `defineConfig`. */
3458
+ export type BlumeConfig = z.input<typeof blumeConfigSchema>;
3459
+ /** A configured search backend. */
3460
+ export type SearchProvider = (typeof searchProviders)[number];
3461
+ export {};