@zpress/config 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2310 @@
1
+ import { BuiltInIconColor } from '@zpress/theme';
2
+ import { BuiltInThemeName } from '@zpress/theme';
3
+ import { COLOR_MODES } from '@zpress/theme';
4
+ import { ColorMode } from '@zpress/theme';
5
+ import { ICON_COLORS } from '@zpress/theme';
6
+ import { IconColor } from '@zpress/theme';
7
+ import { isBuiltInIconColor } from '@zpress/theme';
8
+ import { isBuiltInTheme } from '@zpress/theme';
9
+ import { resolveDefaultColorMode } from '@zpress/theme';
10
+ import { THEME_NAMES } from '@zpress/theme';
11
+ import { ThemeColors } from '@zpress/theme';
12
+ import { ThemeConfig } from '@zpress/theme';
13
+ import { ThemeName } from '@zpress/theme';
14
+ import { z } from 'zod/v3';
15
+ import type { ZodError } from 'zod/v3';
16
+
17
+ export { BuiltInIconColor }
18
+
19
+ export { BuiltInThemeName }
20
+
21
+ /**
22
+ * Controls how an entry appears as a card on its parent section's
23
+ * auto-generated landing page.
24
+ *
25
+ * When present, the landing page uses workspace-style cards
26
+ * (icon + scope + name + description + tags + optional badge).
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * card: {
31
+ * icon: 'devicon:hono',
32
+ * scope: 'apps/',
33
+ * description: 'Hono REST API with RPC-typed routes',
34
+ * tags: ['Hono', 'REST', 'Serverless'],
35
+ * badge: { src: '/logos/vercel.svg', alt: 'Vercel' },
36
+ * }
37
+ * ```
38
+ */
39
+ export declare interface CardConfig {
40
+ /**
41
+ * Icon configuration — Iconify identifier string or `{ id, color }` object.
42
+ */
43
+ icon?: IconConfig;
44
+ /**
45
+ * Scope label shown above the name (e.g. `"apps/"`).
46
+ */
47
+ scope?: string;
48
+ /**
49
+ * Short description shown on the card. Overrides auto-extracted description.
50
+ */
51
+ description?: string;
52
+ /**
53
+ * Technology tags shown at the bottom of the card.
54
+ */
55
+ tags?: string[];
56
+ /**
57
+ * Deploy badge image shown in the card header.
58
+ */
59
+ badge?: {
60
+ src: string;
61
+ alt: string;
62
+ };
63
+ }
64
+
65
+ export { COLOR_MODES }
66
+
67
+ export { ColorMode }
68
+
69
+ export declare interface ConfigError {
70
+ readonly _tag: 'ConfigError';
71
+ readonly type: ConfigErrorType;
72
+ readonly message: string;
73
+ readonly errors?: readonly {
74
+ readonly path: readonly (string | number)[];
75
+ readonly message: string;
76
+ }[];
77
+ }
78
+
79
+ export declare function configError(type: ConfigErrorType, message: string): ConfigError;
80
+
81
+ export declare function configErrorFromZod(zodError: ZodError): ConfigError;
82
+
83
+ export declare type ConfigErrorType = 'not_found' | 'parse_error' | 'validation_failed' | 'empty_sections' | 'missing_field' | 'invalid_entry' | 'invalid_section' | 'invalid_field' | 'invalid_icon' | 'invalid_theme' | 'duplicate_prefix' | 'unknown';
84
+
85
+ export declare type ConfigResult<T> = Result<T, ConfigError>;
86
+
87
+ /**
88
+ * Type-safe config helper for zpress.config.ts files.
89
+ *
90
+ * Provides type safety and editor autocompletion.
91
+ * Validation is deferred to loadConfig at runtime.
92
+ *
93
+ * @param config - Zpress config object
94
+ * @returns The config unchanged
95
+ */
96
+ export declare function defineConfig(config: ZpressConfig): ZpressConfig;
97
+
98
+ /**
99
+ * Unified discovery configuration with properly typed recursion dependency.
100
+ */
101
+ export declare type Discovery = FlatDiscoveryConfig | RecursiveDiscoveryConfig;
102
+
103
+ /**
104
+ * Content discovery configuration for auto-generating pages from files.
105
+ */
106
+ declare interface DiscoveryConfig {
107
+ /**
108
+ * Content source — file path or glob pattern.
109
+ * - **No wildcards** → single file (e.g. `"docs/overview.md"`)
110
+ * - **With wildcards** → auto-discover children (e.g. `"docs/*.md"`)
111
+ */
112
+ readonly from?: string | GlobPattern;
113
+ /**
114
+ * Title configuration for auto-discovered children.
115
+ * @default { from: 'auto' }
116
+ */
117
+ readonly title?: TitleConfig;
118
+ /**
119
+ * Sort order for auto-discovered children.
120
+ * - `"alpha"` — alphabetical by derived title (default)
121
+ * - `"filename"` — alphabetical by filename
122
+ * - Custom comparator function
123
+ */
124
+ readonly sort?: 'alpha' | 'filename' | ((a: ResolvedPage, b: ResolvedPage) => number);
125
+ /**
126
+ * Exclude globs, scoped to this discovery's `from` glob.
127
+ */
128
+ readonly exclude?: readonly GlobPattern[];
129
+ /**
130
+ * Frontmatter injected at build time for all discovered pages.
131
+ */
132
+ readonly frontmatter?: Frontmatter;
133
+ }
134
+
135
+ /**
136
+ * Base type for all config entries — shared display metadata.
137
+ *
138
+ * All types in the information architecture (Section, Workspace, WorkspaceCategory, Feature)
139
+ * extend this base to inherit common display fields.
140
+ */
141
+ export declare interface Entry {
142
+ /**
143
+ * Display title shown in UI (sidebar, nav, cards).
144
+ * Can be a static string or a configuration for deriving from files.
145
+ */
146
+ readonly title: string | TitleConfig;
147
+ /**
148
+ * Icon configuration — Iconify identifier string or `{ id, color }` object.
149
+ *
150
+ * Accepts either:
151
+ * - **String**: Iconify identifier (e.g. `"devicon:hono"`, `"pixelarticons:device-mobile"`)
152
+ * - Color defaults to purple (first in rotation)
153
+ * - Find icons at https://icon-sets.iconify.design/
154
+ * - **Object**: `{ id: IconId, color: IconColor }`
155
+ * - Explicit color from 8-color palette
156
+ *
157
+ * Auto-generated section cards rotate through these colors:
158
+ * purple → blue → green → amber → cyan → red → pink → slate
159
+ *
160
+ * @example
161
+ * ```ts
162
+ * icon: 'devicon:react' // Uses purple (default)
163
+ * icon: { id: 'devicon:nextjs', color: 'blue' } // Explicit blue
164
+ * ```
165
+ */
166
+ readonly icon?: IconConfig;
167
+ /**
168
+ * Short description for cards and summaries.
169
+ */
170
+ readonly description?: string;
171
+ }
172
+
173
+ /**
174
+ * Explicit feature card for the home page.
175
+ *
176
+ * When `features` is provided on the config, these replace the
177
+ * auto-generated feature cards that are normally derived from
178
+ * top-level sections.
179
+ *
180
+ * @example
181
+ * ```ts
182
+ * {
183
+ * title: 'Getting Started',
184
+ * description: 'Everything you need to set up and start building.',
185
+ * link: '/getting-started',
186
+ * icon: 'pixelarticons:speed-fast',
187
+ * }
188
+ * ```
189
+ */
190
+ export declare interface Feature extends Entry {
191
+ /**
192
+ * Link target when the card is clicked.
193
+ */
194
+ readonly link: string;
195
+ }
196
+
197
+ /**
198
+ * Relative file path from repo root (e.g. `"docs/guides/add-api-route.md"`)
199
+ */
200
+ declare type FilePath = string;
201
+
202
+ /**
203
+ * Flat (non-recursive) discovery configuration.
204
+ */
205
+ export declare interface FlatDiscoveryConfig extends DiscoveryConfig {
206
+ readonly recursive?: false;
207
+ }
208
+
209
+ /**
210
+ * Rspress frontmatter fields injectable at build time.
211
+ */
212
+ export declare interface Frontmatter {
213
+ readonly title?: string;
214
+ readonly titleTemplate?: string | boolean;
215
+ readonly description?: string;
216
+ readonly layout?: 'doc' | 'page' | 'home' | (string & {});
217
+ readonly sidebar?: boolean;
218
+ readonly aside?: boolean | 'left';
219
+ readonly outline?: false | number | [number, number] | 'deep';
220
+ readonly navbar?: boolean;
221
+ readonly editLink?: boolean;
222
+ readonly lastUpdated?: boolean;
223
+ readonly footer?: boolean;
224
+ readonly pageClass?: string;
225
+ readonly head?: readonly [string, Record<string, string>][];
226
+ /**
227
+ * Arbitrary extra fields merged into frontmatter.
228
+ */
229
+ readonly [key: string]: unknown;
230
+ }
231
+
232
+ /**
233
+ * Glob pattern (e.g. `"docs/guides/*.md"`)
234
+ */
235
+ declare type GlobPattern = string;
236
+
237
+ /**
238
+ * Hero section configuration override.
239
+ */
240
+ export declare interface HeroConfig {
241
+ /**
242
+ * Main hero title. Overrides site title on home page.
243
+ */
244
+ readonly title?: string;
245
+ /**
246
+ * Hero subtitle/headline. Overrides site description on home page.
247
+ */
248
+ readonly subtitle?: string;
249
+ /**
250
+ * Hero tagline. Overrides site tagline on home page.
251
+ */
252
+ readonly tagline?: string;
253
+ /**
254
+ * Hero image path. Defaults to "/banner.svg".
255
+ */
256
+ readonly image?: string;
257
+ /**
258
+ * Call-to-action buttons.
259
+ */
260
+ readonly actions?: readonly {
261
+ readonly theme: 'brand' | 'alt';
262
+ readonly text: string;
263
+ readonly link: string;
264
+ }[];
265
+ }
266
+
267
+ export { ICON_COLORS }
268
+
269
+ export { IconColor }
270
+
271
+ /**
272
+ * Unified icon configuration.
273
+ *
274
+ * Accepts either:
275
+ * - **String**: Iconify identifier (e.g. `"devicon:hono"`, `"pixelarticons:device-mobile"`)
276
+ * - Color defaults to purple (first in rotation)
277
+ * - Find icons at https://icon-sets.iconify.design/
278
+ * - **Object**: `{ id: IconId, color: IconColor }`
279
+ * - Explicit color from 8-color palette
280
+ *
281
+ * Auto-generated section cards rotate through these colors:
282
+ * purple → blue → green → amber → cyan → red → pink → slate
283
+ *
284
+ * @example
285
+ * ```ts
286
+ * icon: 'devicon:react' // Uses purple (default)
287
+ * icon: { id: 'devicon:nextjs', color: 'blue' } // Explicit blue
288
+ * ```
289
+ */
290
+ export declare type IconConfig = IconId | {
291
+ readonly id: IconId;
292
+ readonly color: IconColor;
293
+ };
294
+
295
+ /**
296
+ * Iconify icon identifier (e.g. `"devicon:hono"`, `"pixelarticons:device-mobile"`).
297
+ * Find icons at https://icon-sets.iconify.design/
298
+ */
299
+ export declare type IconId = string;
300
+
301
+ export { isBuiltInIconColor }
302
+
303
+ export { isBuiltInTheme }
304
+
305
+ /**
306
+ * Load and validate zpress config from filesystem.
307
+ *
308
+ * Supports multiple config formats:
309
+ * - zpress.config.ts (TypeScript)
310
+ * - zpress.config.js/mjs (JavaScript ESM)
311
+ * - zpress.config.json/jsonc (JSON with comments)
312
+ * - zpress.config.yml/yaml (YAML)
313
+ *
314
+ * @param dirOrOptions - Directory path (string) or LoadConfigOptions object
315
+ * @returns ConfigResult tuple - [null, config] on success or [error, null] on failure
316
+ */
317
+ export declare function loadConfig(dirOrOptions?: string | LoadConfigOptions): Promise<ConfigResult<ZpressConfig>>;
318
+
319
+ export declare interface LoadConfigOptions {
320
+ /**
321
+ * Working directory to search for config files.
322
+ * @default process.cwd()
323
+ */
324
+ readonly cwd?: string;
325
+ /**
326
+ * Specific config file path to load.
327
+ */
328
+ readonly configFile?: string;
329
+ }
330
+
331
+ export declare interface NavItem {
332
+ readonly title: string;
333
+ readonly link?: UrlPath;
334
+ readonly items?: readonly NavItem[];
335
+ readonly activeMatch?: string;
336
+ }
337
+
338
+ /**
339
+ * Configuration for OpenAPI spec integration.
340
+ */
341
+ export declare interface OpenAPIConfig {
342
+ /**
343
+ * Path to openapi.json relative to repo root.
344
+ */
345
+ spec: FilePath;
346
+ /**
347
+ * URL prefix for API operation pages (e.g., '/api').
348
+ */
349
+ prefix: UrlPath;
350
+ /**
351
+ * Sidebar group title.
352
+ * @default 'API Reference'
353
+ */
354
+ title?: string;
355
+ }
356
+
357
+ export declare const pathsSchema: z.ZodObject<{
358
+ repoRoot: z.ZodString;
359
+ outputRoot: z.ZodString;
360
+ contentDir: z.ZodString;
361
+ publicDir: z.ZodString;
362
+ distDir: z.ZodString;
363
+ cacheDir: z.ZodString;
364
+ }, "strict", z.ZodTypeAny, {
365
+ repoRoot: string;
366
+ outputRoot: string;
367
+ contentDir: string;
368
+ publicDir: string;
369
+ distDir: string;
370
+ cacheDir: string;
371
+ }, {
372
+ repoRoot: string;
373
+ outputRoot: string;
374
+ contentDir: string;
375
+ publicDir: string;
376
+ distDir: string;
377
+ cacheDir: string;
378
+ }>;
379
+
380
+ /**
381
+ * Recursive directory-based discovery configuration.
382
+ * Type-enforces that `indexFile` only exists when `recursive: true`.
383
+ */
384
+ export declare interface RecursiveDiscoveryConfig extends DiscoveryConfig {
385
+ readonly recursive: true;
386
+ /**
387
+ * Filename (without extension) used as the section header page in each directory.
388
+ * @default "overview"
389
+ */
390
+ readonly indexFile?: string;
391
+ }
392
+
393
+ export { resolveDefaultColorMode }
394
+
395
+ /**
396
+ * A fully resolved page after the sync engine processes the config.
397
+ */
398
+ export declare interface ResolvedPage {
399
+ /**
400
+ * Display title.
401
+ */
402
+ readonly title: string;
403
+ /**
404
+ * Output URL path.
405
+ */
406
+ readonly link: UrlPath;
407
+ /**
408
+ * Source file path (undefined for virtual pages).
409
+ */
410
+ readonly source?: FilePath;
411
+ /**
412
+ * Merged frontmatter.
413
+ */
414
+ readonly frontmatter: Frontmatter;
415
+ }
416
+
417
+ /**
418
+ * A fully resolved section.
419
+ */
420
+ export declare interface ResolvedSection {
421
+ readonly title: string;
422
+ readonly link?: UrlPath;
423
+ readonly collapsible?: boolean;
424
+ readonly items: readonly (ResolvedPage | ResolvedSection)[];
425
+ }
426
+
427
+ /**
428
+ * zpress — unified information architecture config.
429
+ *
430
+ * The IA tree IS the config. Each node defines what it is, where its
431
+ * content comes from, and where it sits in the sidebar — all in one place.
432
+ * Source `.md` files are never edited.
433
+ *
434
+ * @example
435
+ * ```ts
436
+ * import { defineConfig } from '@zpress/core'
437
+ *
438
+ * export default defineConfig({
439
+ * title: 'My Docs',
440
+ * sections: [
441
+ * {
442
+ * title: 'Introduction',
443
+ * items: [
444
+ * { title: 'Architecture', link: '/architecture', from: 'docs/architecture.md' },
445
+ * { title: 'Structure', link: '/structure', from: 'docs/structure.md' },
446
+ * ],
447
+ * },
448
+ * {
449
+ * title: 'Guides',
450
+ * prefix: '/guides',
451
+ * from: 'docs/guides/*.md',
452
+ * },
453
+ * {
454
+ * title: 'API Reference',
455
+ * items: [
456
+ * { title: 'Overview', link: '/api/overview', content: '# API\n...' },
457
+ * { title: 'Routes', link: '/api/routes', from: 'apps/api/docs/routes.md' },
458
+ * ],
459
+ * },
460
+ * ],
461
+ * })
462
+ * ```
463
+ */
464
+ /**
465
+ * Result type for error handling without exceptions.
466
+ *
467
+ * Success: `[null, value]`
468
+ * Failure: `[error, null]`
469
+ *
470
+ * @example
471
+ * ```ts
472
+ * const [error, value] = loadConfig(path)
473
+ * if (error) return [error, null]
474
+ * ```
475
+ */
476
+ export declare type Result<T, E = Error> = readonly [E, null] | readonly [null, T];
477
+
478
+ /**
479
+ * A single node in the information architecture (sidebar/nav tree).
480
+ *
481
+ * Goes in `config.sections` array. Can be a page, section, or both.
482
+ *
483
+ * **Page — explicit file**:
484
+ * ```ts
485
+ * { title: 'Architecture', link: '/architecture', from: 'docs/architecture.md' }
486
+ * ```
487
+ *
488
+ * **Page — inline/generated content**:
489
+ * ```ts
490
+ * { title: 'Overview', link: '/api/overview', content: '# API Overview\n...' }
491
+ * ```
492
+ *
493
+ * **Section — explicit children**:
494
+ * ```ts
495
+ * { title: 'Guides', items: [ ... ] }
496
+ * ```
497
+ *
498
+ * **Section — auto-discovered from glob**:
499
+ * ```ts
500
+ * { title: 'Guides', prefix: '/guides', from: 'docs/guides/*.md' }
501
+ * ```
502
+ *
503
+ * **Section — mix of explicit + auto-discovered**:
504
+ * ```ts
505
+ * {
506
+ * title: 'Guides',
507
+ * prefix: '/guides',
508
+ * from: 'docs/guides/*.md',
509
+ * items: [
510
+ * { title: 'Getting Started', link: '/guides/start', from: 'docs/intro.md' },
511
+ * ],
512
+ * }
513
+ * ```
514
+ */
515
+ export declare interface Section extends Entry {
516
+ /**
517
+ * Output URL path.
518
+ * - Pages: exact URL (e.g. `"/guides/add-api-route"`)
519
+ * - Sections: optional — makes the section header clickable
520
+ */
521
+ readonly link?: UrlPath;
522
+ /**
523
+ * Content source — file path or glob, relative to repo root.
524
+ *
525
+ * - **No wildcards** → single file (e.g. `"docs/architecture.md"`)
526
+ * - **With wildcards** → auto-discover children (e.g. `"docs/guides/*.md"`)
527
+ */
528
+ readonly from?: FilePath | GlobPattern;
529
+ /**
530
+ * URL prefix for auto-discovered children.
531
+ * Used with glob `from` — each discovered file gets `prefix + "/" + slug`.
532
+ *
533
+ * @example
534
+ * `prefix: "/guides"` + file `add-api-route.md` → `/guides/add-api-route`
535
+ */
536
+ readonly prefix?: UrlPath;
537
+ /**
538
+ * Inline markdown or async content generator.
539
+ * For virtual pages that have no source `.md` file.
540
+ * Mutually exclusive with `from`.
541
+ */
542
+ readonly content?: string | (() => string | Promise<string>);
543
+ /**
544
+ * Child entries — pages and/or sub-sections.
545
+ */
546
+ readonly items?: readonly Section[];
547
+ /**
548
+ * Landing page generation strategy for sections with children.
549
+ *
550
+ * - `"auto"` (default) — generate cards from children, or promote overview/index if found
551
+ * - `"cards"` — always generate cards, never promote overview files
552
+ * - `"overview"` — only use overview file if found, no auto-generation
553
+ * - `false` — disable landing page (section header not clickable unless explicit `from`)
554
+ *
555
+ * Only applies to sections with `items`.
556
+ * Requires `link` to be set.
557
+ */
558
+ readonly landing?: 'auto' | 'cards' | 'overview' | false;
559
+ /**
560
+ * Make this section collapsible in the sidebar.
561
+ *
562
+ * - `true` — always collapsible
563
+ * - `false` — never collapsible (keeps deep sections always-open)
564
+ * - `undefined` (default) — auto-collapsible when depth > 1
565
+ */
566
+ readonly collapsible?: boolean;
567
+ /**
568
+ * Exclude globs, scoped to this section's `from` glob.
569
+ */
570
+ readonly exclude?: readonly GlobPattern[];
571
+ /**
572
+ * Hide from sidebar. Page is still built and routable.
573
+ * Useful for pages that should exist but not clutter navigation.
574
+ */
575
+ readonly hidden?: boolean;
576
+ /**
577
+ * Isolate this section into its own Rspress sidebar namespace.
578
+ *
579
+ * When `true`, the section's children appear under a dedicated sidebar
580
+ * keyed by `link` (e.g. `"/apps/"`) instead of the root `"/"` sidebar.
581
+ * This mirrors how the OpenAPI reference already works.
582
+ *
583
+ * Note: Isolated sections are excluded from `nav: "auto"` generation.
584
+ *
585
+ * Requires `link` to be set.
586
+ * @default false
587
+ */
588
+ readonly isolated?: boolean;
589
+ /**
590
+ * Frontmatter injected at build time.
591
+ * - On a page: applied to that page.
592
+ * - On a section: applied to all pages within.
593
+ */
594
+ readonly frontmatter?: Frontmatter;
595
+ /**
596
+ * How to derive `title` for auto-discovered children.
597
+ * - `"filename"` — kebab-to-title from filename (default)
598
+ * - `"heading"` — first `# heading` in the file
599
+ * - `"frontmatter"` — `title` field from YAML frontmatter, falls back to heading
600
+ * - `"auto"` — frontmatter > heading > filename fallback chain
601
+ *
602
+ * @deprecated Use `title: { from: 'auto' }` instead
603
+ */
604
+ readonly titleFrom?: 'filename' | 'heading' | 'frontmatter' | 'auto';
605
+ /**
606
+ * Transform function applied to auto-derived title (from `titleFrom`).
607
+ * Called after title derivation for glob-discovered and recursive children.
608
+ * Does NOT apply to sections with explicit `title` string (those are already user-controlled).
609
+ *
610
+ * @param title - The derived title (from heading or filename)
611
+ * @param slug - The filename slug (without extension)
612
+ * @returns Transformed title for sidebar display
613
+ *
614
+ * @deprecated Use `title: { from: 'auto', transform: ... }` instead
615
+ */
616
+ readonly titleTransform?: (title: string, slug: string) => string;
617
+ /**
618
+ * Sort order for auto-discovered children.
619
+ * - `"alpha"` — alphabetical by derived title (default)
620
+ * - `"filename"` — alphabetical by filename
621
+ * - Custom comparator function
622
+ */
623
+ readonly sort?: 'alpha' | 'filename' | ((a: ResolvedPage, b: ResolvedPage) => number);
624
+ /**
625
+ * Enable recursive directory-based nesting for glob patterns.
626
+ * When true, directory structure under the glob base drives sidebar nesting:
627
+ * - The `indexFile` (default `"overview"`) in a directory becomes the section header page
628
+ * - Other `.md` files become children
629
+ * - Sub-directories become nested collapsible sections
630
+ *
631
+ * Requires `from` with a recursive glob (e.g. `"docs/**\/*.md"`) and `prefix`.
632
+ * @default false
633
+ */
634
+ readonly recursive?: boolean;
635
+ /**
636
+ * Filename (without extension) used as the section header page in each directory.
637
+ * Only meaningful when `recursive` is true.
638
+ * @default "overview"
639
+ */
640
+ readonly indexFile?: string;
641
+ /**
642
+ * Card display metadata for the parent section's auto-generated landing page.
643
+ *
644
+ * When present on child sections, the parent's landing page uses
645
+ * workspace-style cards instead of the default simple cards.
646
+ */
647
+ readonly card?: CardConfig;
648
+ /**
649
+ * SEO meta tag overrides for this page.
650
+ * Merges with site-level SEO config.
651
+ */
652
+ readonly seo?: SeoConfig;
653
+ }
654
+
655
+ /**
656
+ * SEO meta tag configuration.
657
+ */
658
+ export declare interface SeoConfig {
659
+ /**
660
+ * Meta title (for `<title>` tag and og:title).
661
+ * Falls back to site title or page title.
662
+ */
663
+ readonly title?: string;
664
+ /**
665
+ * Meta description (for description and og:description).
666
+ * Falls back to site description or auto-generated from content.
667
+ */
668
+ readonly description?: string;
669
+ /**
670
+ * Open Graph image URL.
671
+ * Falls back to `/og-image.png` (auto-generated from banner.svg).
672
+ */
673
+ readonly image?: string;
674
+ /**
675
+ * OG site name. Defaults to site title.
676
+ */
677
+ readonly siteName?: string;
678
+ /**
679
+ * OG locale (e.g. "en_US"). Defaults to "en_US".
680
+ */
681
+ readonly locale?: string;
682
+ /**
683
+ * Twitter card type. Defaults to "summary_large_image".
684
+ */
685
+ readonly twitterCard?: 'summary' | 'summary_large_image' | 'app' | 'player';
686
+ }
687
+
688
+ export { THEME_NAMES }
689
+
690
+ export { ThemeColors }
691
+
692
+ export { ThemeConfig }
693
+
694
+ export { ThemeName }
695
+
696
+ /**
697
+ * Title configuration — static or derived from source files.
698
+ *
699
+ * **Static title**:
700
+ * ```ts
701
+ * title: "Getting Started"
702
+ * ```
703
+ *
704
+ * **Derived title**:
705
+ * ```ts
706
+ * title: { from: 'auto', transform: (text, slug) => text.toUpperCase() }
707
+ * ```
708
+ */
709
+ export declare type TitleConfig = string | {
710
+ /**
711
+ * Title derivation strategy for auto-discovered children.
712
+ * - `"auto"` (default) — frontmatter > heading > filename fallback chain
713
+ * - `"filename"` — kebab-to-title from filename only
714
+ * - `"heading"` — first `# heading` in the file only
715
+ * - `"frontmatter"` — `title` field from YAML frontmatter only
716
+ */
717
+ readonly from: 'auto' | 'filename' | 'heading' | 'frontmatter';
718
+ /**
719
+ * Transform function applied after derivation.
720
+ * @param text - The derived title
721
+ * @param slug - The filename slug (without extension)
722
+ * @returns Transformed title for sidebar display
723
+ */
724
+ readonly transform?: (text: string, slug: string) => string;
725
+ };
726
+
727
+ /**
728
+ * URL path (e.g. `"/guides/add-api-route"`)
729
+ */
730
+ declare type UrlPath = string;
731
+
732
+ /**
733
+ * Validate a zpress config object using Zod schemas.
734
+ *
735
+ * @param config - Raw config object to validate
736
+ * @returns ConfigResult tuple - [null, config] on success or [error, null] on failure
737
+ */
738
+ export declare function validateConfig(config: unknown): ConfigResult<ZpressConfig>;
739
+
740
+ /**
741
+ * Workspace item representing an app or package in the monorepo.
742
+ *
743
+ * Used as the single source of truth for workspace metadata — home page cards,
744
+ * landing page cards, and introduction bullets all derive from these arrays.
745
+ *
746
+ * @example
747
+ * ```ts
748
+ * {
749
+ * title: 'API',
750
+ * icon: 'devicon:hono',
751
+ * description: 'Hono REST API serving all client applications with RPC-typed routes',
752
+ * tags: ['hono', 'react', 'vercel'],
753
+ * badge: { src: '/logos/vercel.svg', alt: 'Vercel' },
754
+ * prefix: '/apps/api',
755
+ * discovery: {
756
+ * from: 'docs/*.md',
757
+ * title: { from: 'auto' },
758
+ * },
759
+ * }
760
+ * ```
761
+ */
762
+ export declare interface Workspace extends Entry {
763
+ /**
764
+ * URL prefix for this workspace item's documentation (e.g. "/apps/api").
765
+ */
766
+ readonly prefix: string;
767
+ /**
768
+ * Technology tags — kebab-case keys resolved by the UI TechTag component.
769
+ * Each tag maps to an Iconify icon and display label.
770
+ */
771
+ readonly tags?: readonly string[];
772
+ /**
773
+ * Deploy badge image for the card header.
774
+ */
775
+ readonly badge?: {
776
+ readonly src: string;
777
+ readonly alt: string;
778
+ };
779
+ /**
780
+ * Content discovery configuration for this workspace item's documentation.
781
+ * The `from` field is **relative to the workspace base path** (derived from `prefix`).
782
+ *
783
+ * For example, `prefix: "/apps/api"` + `discovery.from: "docs/*.md"`
784
+ * resolves to `apps/api/docs/*.md` (repo-root relative).
785
+ *
786
+ * @default { from: "docs/*.md", title: { from: 'auto' } }
787
+ */
788
+ readonly discovery?: Discovery;
789
+ /**
790
+ * Explicit child sections. Can be combined with discovery — explicit children override glob-discovered pages.
791
+ */
792
+ readonly items?: readonly Section[];
793
+ /**
794
+ * Make this item's section collapsible in the sidebar.
795
+ */
796
+ readonly collapsible?: boolean;
797
+ }
798
+
799
+ /**
800
+ * Custom workspace category grouping apps/packages.
801
+ *
802
+ * Lets users define arbitrary groups beyond the built-in `apps` and `packages`
803
+ * (e.g. "Services", "Tools", "Integrations") that receive the same
804
+ * card/landing-page treatment.
805
+ *
806
+ * @example
807
+ * ```ts
808
+ * {
809
+ * title: 'Integrations',
810
+ * description: 'Third-party service connectors',
811
+ * icon: 'pixelarticons:integration',
812
+ * items: [
813
+ * { title: 'Stripe', description: 'Payment processing', prefix: '/integrations/stripe' },
814
+ * ],
815
+ * }
816
+ * ```
817
+ */
818
+ export declare interface WorkspaceCategory extends Entry {
819
+ /**
820
+ * Workspace items in this category.
821
+ */
822
+ readonly items: readonly Workspace[];
823
+ /**
824
+ * URL prefix override for the category's landing page.
825
+ * Defaults to `/${slugify(title)}` when omitted.
826
+ */
827
+ readonly link?: string;
828
+ }
829
+
830
+ /**
831
+ * @deprecated Use `WorkspaceCategory` instead
832
+ */
833
+ export declare type WorkspaceGroup = WorkspaceCategory;
834
+
835
+ /**
836
+ * @deprecated Use `Workspace` instead
837
+ */
838
+ export declare type WorkspaceItem = Workspace;
839
+
840
+ export declare interface ZpressConfig {
841
+ /**
842
+ * Site title.
843
+ */
844
+ readonly title?: string;
845
+ /**
846
+ * Site meta description. Used as the hero headline on the home page.
847
+ */
848
+ readonly description?: string;
849
+ /**
850
+ * Theme configuration.
851
+ * Controls the visual theme, color mode, and optional color overrides.
852
+ */
853
+ readonly theme?: ThemeConfig;
854
+ /**
855
+ * Path to a custom favicon file served from `.zpress/public/`.
856
+ * When omitted, defaults to the auto-generated `/icon.svg`.
857
+ */
858
+ readonly icon?: string;
859
+ /**
860
+ * Hero tagline displayed below the headline on the home page.
861
+ * When omitted, the tagline is not rendered.
862
+ */
863
+ readonly tagline?: string;
864
+ /**
865
+ * Hero section override for the home page.
866
+ * When omitted, uses site-level title, description, and tagline.
867
+ */
868
+ readonly hero?: HeroConfig;
869
+ /**
870
+ * SEO meta tag configuration for the entire site.
871
+ * Individual sections can override with their own seo config.
872
+ */
873
+ readonly seo?: SeoConfig;
874
+ /**
875
+ * Workspace apps — deployable services that make up the platform.
876
+ * Single source of truth for app metadata used on the home page,
877
+ * landing pages, and introduction page.
878
+ */
879
+ readonly apps?: readonly Workspace[];
880
+ /**
881
+ * Workspace packages — shared libraries consumed by apps.
882
+ * Single source of truth for package metadata used on the home page,
883
+ * landing pages, and introduction page.
884
+ */
885
+ readonly packages?: readonly Workspace[];
886
+ /**
887
+ * Custom workspace groups — arbitrary named groups of workspace items.
888
+ * Each group receives the same card/landing-page treatment as apps and packages.
889
+ * Rendered after apps and packages, in array order.
890
+ */
891
+ readonly workspaces?: readonly WorkspaceCategory[];
892
+ /**
893
+ * Explicit feature cards for the home page.
894
+ *
895
+ * When provided, these replace the auto-generated feature cards
896
+ * that are normally derived from top-level sections.
897
+ * When omitted, features are auto-generated from sections with icons.
898
+ */
899
+ readonly features?: readonly Feature[];
900
+ /**
901
+ * The information architecture.
902
+ * Defines content sources, sidebar structure, and routing in a single tree.
903
+ */
904
+ readonly sections: readonly Section[];
905
+ /**
906
+ * Top navigation bar.
907
+ * - `"auto"` (default) — one nav item per top-level non-isolated section
908
+ * - Array — explicit nav items
909
+ *
910
+ * Note: Sections with `isolated: true` are excluded from auto nav generation.
911
+ * @default "auto"
912
+ */
913
+ readonly nav?: 'auto' | readonly NavItem[];
914
+ /**
915
+ * Globs to exclude globally across all sources.
916
+ */
917
+ readonly exclude?: readonly GlobPattern[];
918
+ /**
919
+ * OpenAPI spec integration for interactive API docs.
920
+ */
921
+ readonly openapi?: OpenAPIConfig;
922
+ }
923
+
924
+ export declare const zpressConfigSchema: z.ZodObject<{
925
+ title: z.ZodOptional<z.ZodString>;
926
+ description: z.ZodOptional<z.ZodString>;
927
+ theme: z.ZodOptional<z.ZodObject<{
928
+ name: z.ZodDefault<z.ZodString>;
929
+ colorMode: z.ZodOptional<z.ZodEnum<["dark", "light", "toggle"]>>;
930
+ switcher: z.ZodOptional<z.ZodBoolean>;
931
+ colors: z.ZodOptional<z.ZodObject<{
932
+ brand: z.ZodOptional<z.ZodString>;
933
+ brandLight: z.ZodOptional<z.ZodString>;
934
+ brandDark: z.ZodOptional<z.ZodString>;
935
+ brandSoft: z.ZodOptional<z.ZodString>;
936
+ bg: z.ZodOptional<z.ZodString>;
937
+ bgAlt: z.ZodOptional<z.ZodString>;
938
+ bgElv: z.ZodOptional<z.ZodString>;
939
+ bgSoft: z.ZodOptional<z.ZodString>;
940
+ text1: z.ZodOptional<z.ZodString>;
941
+ text2: z.ZodOptional<z.ZodString>;
942
+ text3: z.ZodOptional<z.ZodString>;
943
+ divider: z.ZodOptional<z.ZodString>;
944
+ border: z.ZodOptional<z.ZodString>;
945
+ homeBg: z.ZodOptional<z.ZodString>;
946
+ }, "strict", z.ZodTypeAny, {
947
+ brand?: string | undefined;
948
+ brandLight?: string | undefined;
949
+ brandDark?: string | undefined;
950
+ brandSoft?: string | undefined;
951
+ bg?: string | undefined;
952
+ bgAlt?: string | undefined;
953
+ bgElv?: string | undefined;
954
+ bgSoft?: string | undefined;
955
+ text1?: string | undefined;
956
+ text2?: string | undefined;
957
+ text3?: string | undefined;
958
+ divider?: string | undefined;
959
+ border?: string | undefined;
960
+ homeBg?: string | undefined;
961
+ }, {
962
+ brand?: string | undefined;
963
+ brandLight?: string | undefined;
964
+ brandDark?: string | undefined;
965
+ brandSoft?: string | undefined;
966
+ bg?: string | undefined;
967
+ bgAlt?: string | undefined;
968
+ bgElv?: string | undefined;
969
+ bgSoft?: string | undefined;
970
+ text1?: string | undefined;
971
+ text2?: string | undefined;
972
+ text3?: string | undefined;
973
+ divider?: string | undefined;
974
+ border?: string | undefined;
975
+ homeBg?: string | undefined;
976
+ }>>;
977
+ darkColors: z.ZodOptional<z.ZodObject<{
978
+ brand: z.ZodOptional<z.ZodString>;
979
+ brandLight: z.ZodOptional<z.ZodString>;
980
+ brandDark: z.ZodOptional<z.ZodString>;
981
+ brandSoft: z.ZodOptional<z.ZodString>;
982
+ bg: z.ZodOptional<z.ZodString>;
983
+ bgAlt: z.ZodOptional<z.ZodString>;
984
+ bgElv: z.ZodOptional<z.ZodString>;
985
+ bgSoft: z.ZodOptional<z.ZodString>;
986
+ text1: z.ZodOptional<z.ZodString>;
987
+ text2: z.ZodOptional<z.ZodString>;
988
+ text3: z.ZodOptional<z.ZodString>;
989
+ divider: z.ZodOptional<z.ZodString>;
990
+ border: z.ZodOptional<z.ZodString>;
991
+ homeBg: z.ZodOptional<z.ZodString>;
992
+ }, "strict", z.ZodTypeAny, {
993
+ brand?: string | undefined;
994
+ brandLight?: string | undefined;
995
+ brandDark?: string | undefined;
996
+ brandSoft?: string | undefined;
997
+ bg?: string | undefined;
998
+ bgAlt?: string | undefined;
999
+ bgElv?: string | undefined;
1000
+ bgSoft?: string | undefined;
1001
+ text1?: string | undefined;
1002
+ text2?: string | undefined;
1003
+ text3?: string | undefined;
1004
+ divider?: string | undefined;
1005
+ border?: string | undefined;
1006
+ homeBg?: string | undefined;
1007
+ }, {
1008
+ brand?: string | undefined;
1009
+ brandLight?: string | undefined;
1010
+ brandDark?: string | undefined;
1011
+ brandSoft?: string | undefined;
1012
+ bg?: string | undefined;
1013
+ bgAlt?: string | undefined;
1014
+ bgElv?: string | undefined;
1015
+ bgSoft?: string | undefined;
1016
+ text1?: string | undefined;
1017
+ text2?: string | undefined;
1018
+ text3?: string | undefined;
1019
+ divider?: string | undefined;
1020
+ border?: string | undefined;
1021
+ homeBg?: string | undefined;
1022
+ }>>;
1023
+ }, "strict", z.ZodTypeAny, {
1024
+ name: string;
1025
+ colorMode?: "dark" | "light" | "toggle" | undefined;
1026
+ switcher?: boolean | undefined;
1027
+ colors?: {
1028
+ brand?: string | undefined;
1029
+ brandLight?: string | undefined;
1030
+ brandDark?: string | undefined;
1031
+ brandSoft?: string | undefined;
1032
+ bg?: string | undefined;
1033
+ bgAlt?: string | undefined;
1034
+ bgElv?: string | undefined;
1035
+ bgSoft?: string | undefined;
1036
+ text1?: string | undefined;
1037
+ text2?: string | undefined;
1038
+ text3?: string | undefined;
1039
+ divider?: string | undefined;
1040
+ border?: string | undefined;
1041
+ homeBg?: string | undefined;
1042
+ } | undefined;
1043
+ darkColors?: {
1044
+ brand?: string | undefined;
1045
+ brandLight?: string | undefined;
1046
+ brandDark?: string | undefined;
1047
+ brandSoft?: string | undefined;
1048
+ bg?: string | undefined;
1049
+ bgAlt?: string | undefined;
1050
+ bgElv?: string | undefined;
1051
+ bgSoft?: string | undefined;
1052
+ text1?: string | undefined;
1053
+ text2?: string | undefined;
1054
+ text3?: string | undefined;
1055
+ divider?: string | undefined;
1056
+ border?: string | undefined;
1057
+ homeBg?: string | undefined;
1058
+ } | undefined;
1059
+ }, {
1060
+ name?: string | undefined;
1061
+ colorMode?: "dark" | "light" | "toggle" | undefined;
1062
+ switcher?: boolean | undefined;
1063
+ colors?: {
1064
+ brand?: string | undefined;
1065
+ brandLight?: string | undefined;
1066
+ brandDark?: string | undefined;
1067
+ brandSoft?: string | undefined;
1068
+ bg?: string | undefined;
1069
+ bgAlt?: string | undefined;
1070
+ bgElv?: string | undefined;
1071
+ bgSoft?: string | undefined;
1072
+ text1?: string | undefined;
1073
+ text2?: string | undefined;
1074
+ text3?: string | undefined;
1075
+ divider?: string | undefined;
1076
+ border?: string | undefined;
1077
+ homeBg?: string | undefined;
1078
+ } | undefined;
1079
+ darkColors?: {
1080
+ brand?: string | undefined;
1081
+ brandLight?: string | undefined;
1082
+ brandDark?: string | undefined;
1083
+ brandSoft?: string | undefined;
1084
+ bg?: string | undefined;
1085
+ bgAlt?: string | undefined;
1086
+ bgElv?: string | undefined;
1087
+ bgSoft?: string | undefined;
1088
+ text1?: string | undefined;
1089
+ text2?: string | undefined;
1090
+ text3?: string | undefined;
1091
+ divider?: string | undefined;
1092
+ border?: string | undefined;
1093
+ homeBg?: string | undefined;
1094
+ } | undefined;
1095
+ }>>;
1096
+ icon: z.ZodOptional<z.ZodString>;
1097
+ tagline: z.ZodOptional<z.ZodString>;
1098
+ apps: z.ZodOptional<z.ZodArray<z.ZodObject<{
1099
+ title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1100
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1101
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1102
+ }, "strict", z.ZodTypeAny, {
1103
+ from: "auto" | "filename" | "heading" | "frontmatter";
1104
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1105
+ }, {
1106
+ from: "auto" | "filename" | "heading" | "frontmatter";
1107
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1108
+ }>]>;
1109
+ icon: z.ZodOptional<z.ZodString>;
1110
+ iconColor: z.ZodOptional<z.ZodString>;
1111
+ description: z.ZodString;
1112
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1113
+ badge: z.ZodOptional<z.ZodObject<{
1114
+ src: z.ZodString;
1115
+ alt: z.ZodString;
1116
+ }, "strict", z.ZodTypeAny, {
1117
+ alt: string;
1118
+ src: string;
1119
+ }, {
1120
+ alt: string;
1121
+ src: string;
1122
+ }>>;
1123
+ prefix: z.ZodString;
1124
+ discovery: z.ZodOptional<z.ZodObject<{
1125
+ from: z.ZodOptional<z.ZodString>;
1126
+ title: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1127
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1128
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1129
+ }, "strict", z.ZodTypeAny, {
1130
+ from: "auto" | "filename" | "heading" | "frontmatter";
1131
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1132
+ }, {
1133
+ from: "auto" | "filename" | "heading" | "frontmatter";
1134
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1135
+ }>]>>;
1136
+ sort: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["alpha", "filename"]>, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
1137
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1138
+ frontmatter: z.ZodOptional<z.ZodObject<{
1139
+ title: z.ZodOptional<z.ZodString>;
1140
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1141
+ description: z.ZodOptional<z.ZodString>;
1142
+ layout: z.ZodOptional<z.ZodString>;
1143
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1144
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1145
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1146
+ navbar: z.ZodOptional<z.ZodBoolean>;
1147
+ editLink: z.ZodOptional<z.ZodBoolean>;
1148
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1149
+ footer: z.ZodOptional<z.ZodBoolean>;
1150
+ pageClass: z.ZodOptional<z.ZodString>;
1151
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1152
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1153
+ title: z.ZodOptional<z.ZodString>;
1154
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1155
+ description: z.ZodOptional<z.ZodString>;
1156
+ layout: z.ZodOptional<z.ZodString>;
1157
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1158
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1159
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1160
+ navbar: z.ZodOptional<z.ZodBoolean>;
1161
+ editLink: z.ZodOptional<z.ZodBoolean>;
1162
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1163
+ footer: z.ZodOptional<z.ZodBoolean>;
1164
+ pageClass: z.ZodOptional<z.ZodString>;
1165
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1166
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1167
+ title: z.ZodOptional<z.ZodString>;
1168
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1169
+ description: z.ZodOptional<z.ZodString>;
1170
+ layout: z.ZodOptional<z.ZodString>;
1171
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1172
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1173
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1174
+ navbar: z.ZodOptional<z.ZodBoolean>;
1175
+ editLink: z.ZodOptional<z.ZodBoolean>;
1176
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1177
+ footer: z.ZodOptional<z.ZodBoolean>;
1178
+ pageClass: z.ZodOptional<z.ZodString>;
1179
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1180
+ }, z.ZodTypeAny, "passthrough">>>;
1181
+ recursive: z.ZodOptional<z.ZodBoolean>;
1182
+ indexFile: z.ZodOptional<z.ZodString>;
1183
+ }, "strict", z.ZodTypeAny, {
1184
+ title?: string | {
1185
+ from: "auto" | "filename" | "heading" | "frontmatter";
1186
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1187
+ } | undefined;
1188
+ frontmatter?: z.objectOutputType<{
1189
+ title: z.ZodOptional<z.ZodString>;
1190
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1191
+ description: z.ZodOptional<z.ZodString>;
1192
+ layout: z.ZodOptional<z.ZodString>;
1193
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1194
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1195
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1196
+ navbar: z.ZodOptional<z.ZodBoolean>;
1197
+ editLink: z.ZodOptional<z.ZodBoolean>;
1198
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1199
+ footer: z.ZodOptional<z.ZodBoolean>;
1200
+ pageClass: z.ZodOptional<z.ZodString>;
1201
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1202
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1203
+ recursive?: boolean | undefined;
1204
+ indexFile?: string | undefined;
1205
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1206
+ from?: string | undefined;
1207
+ exclude?: string[] | undefined;
1208
+ }, {
1209
+ title?: string | {
1210
+ from: "auto" | "filename" | "heading" | "frontmatter";
1211
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1212
+ } | undefined;
1213
+ frontmatter?: z.objectInputType<{
1214
+ title: z.ZodOptional<z.ZodString>;
1215
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1216
+ description: z.ZodOptional<z.ZodString>;
1217
+ layout: z.ZodOptional<z.ZodString>;
1218
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1219
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1220
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1221
+ navbar: z.ZodOptional<z.ZodBoolean>;
1222
+ editLink: z.ZodOptional<z.ZodBoolean>;
1223
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1224
+ footer: z.ZodOptional<z.ZodBoolean>;
1225
+ pageClass: z.ZodOptional<z.ZodString>;
1226
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1227
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1228
+ recursive?: boolean | undefined;
1229
+ indexFile?: string | undefined;
1230
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1231
+ from?: string | undefined;
1232
+ exclude?: string[] | undefined;
1233
+ }>>;
1234
+ items: z.ZodOptional<z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">>;
1235
+ }, "strict", z.ZodTypeAny, {
1236
+ title: string | {
1237
+ from: "auto" | "filename" | "heading" | "frontmatter";
1238
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1239
+ };
1240
+ description: string;
1241
+ prefix: string;
1242
+ items?: unknown[] | undefined;
1243
+ icon?: string | undefined;
1244
+ iconColor?: string | undefined;
1245
+ tags?: string[] | undefined;
1246
+ badge?: {
1247
+ alt: string;
1248
+ src: string;
1249
+ } | undefined;
1250
+ discovery?: {
1251
+ title?: string | {
1252
+ from: "auto" | "filename" | "heading" | "frontmatter";
1253
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1254
+ } | undefined;
1255
+ frontmatter?: z.objectOutputType<{
1256
+ title: z.ZodOptional<z.ZodString>;
1257
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1258
+ description: z.ZodOptional<z.ZodString>;
1259
+ layout: z.ZodOptional<z.ZodString>;
1260
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1261
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1262
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1263
+ navbar: z.ZodOptional<z.ZodBoolean>;
1264
+ editLink: z.ZodOptional<z.ZodBoolean>;
1265
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1266
+ footer: z.ZodOptional<z.ZodBoolean>;
1267
+ pageClass: z.ZodOptional<z.ZodString>;
1268
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1269
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1270
+ recursive?: boolean | undefined;
1271
+ indexFile?: string | undefined;
1272
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1273
+ from?: string | undefined;
1274
+ exclude?: string[] | undefined;
1275
+ } | undefined;
1276
+ }, {
1277
+ title: string | {
1278
+ from: "auto" | "filename" | "heading" | "frontmatter";
1279
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1280
+ };
1281
+ description: string;
1282
+ prefix: string;
1283
+ items?: unknown[] | undefined;
1284
+ icon?: string | undefined;
1285
+ iconColor?: string | undefined;
1286
+ tags?: string[] | undefined;
1287
+ badge?: {
1288
+ alt: string;
1289
+ src: string;
1290
+ } | undefined;
1291
+ discovery?: {
1292
+ title?: string | {
1293
+ from: "auto" | "filename" | "heading" | "frontmatter";
1294
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1295
+ } | undefined;
1296
+ frontmatter?: z.objectInputType<{
1297
+ title: z.ZodOptional<z.ZodString>;
1298
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1299
+ description: z.ZodOptional<z.ZodString>;
1300
+ layout: z.ZodOptional<z.ZodString>;
1301
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1302
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1303
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1304
+ navbar: z.ZodOptional<z.ZodBoolean>;
1305
+ editLink: z.ZodOptional<z.ZodBoolean>;
1306
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1307
+ footer: z.ZodOptional<z.ZodBoolean>;
1308
+ pageClass: z.ZodOptional<z.ZodString>;
1309
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1310
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1311
+ recursive?: boolean | undefined;
1312
+ indexFile?: string | undefined;
1313
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1314
+ from?: string | undefined;
1315
+ exclude?: string[] | undefined;
1316
+ } | undefined;
1317
+ }>, "many">>;
1318
+ packages: z.ZodOptional<z.ZodArray<z.ZodObject<{
1319
+ title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1320
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1321
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1322
+ }, "strict", z.ZodTypeAny, {
1323
+ from: "auto" | "filename" | "heading" | "frontmatter";
1324
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1325
+ }, {
1326
+ from: "auto" | "filename" | "heading" | "frontmatter";
1327
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1328
+ }>]>;
1329
+ icon: z.ZodOptional<z.ZodString>;
1330
+ iconColor: z.ZodOptional<z.ZodString>;
1331
+ description: z.ZodString;
1332
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1333
+ badge: z.ZodOptional<z.ZodObject<{
1334
+ src: z.ZodString;
1335
+ alt: z.ZodString;
1336
+ }, "strict", z.ZodTypeAny, {
1337
+ alt: string;
1338
+ src: string;
1339
+ }, {
1340
+ alt: string;
1341
+ src: string;
1342
+ }>>;
1343
+ prefix: z.ZodString;
1344
+ discovery: z.ZodOptional<z.ZodObject<{
1345
+ from: z.ZodOptional<z.ZodString>;
1346
+ title: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1347
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1348
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1349
+ }, "strict", z.ZodTypeAny, {
1350
+ from: "auto" | "filename" | "heading" | "frontmatter";
1351
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1352
+ }, {
1353
+ from: "auto" | "filename" | "heading" | "frontmatter";
1354
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1355
+ }>]>>;
1356
+ sort: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["alpha", "filename"]>, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
1357
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1358
+ frontmatter: z.ZodOptional<z.ZodObject<{
1359
+ title: z.ZodOptional<z.ZodString>;
1360
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1361
+ description: z.ZodOptional<z.ZodString>;
1362
+ layout: z.ZodOptional<z.ZodString>;
1363
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1364
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1365
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1366
+ navbar: z.ZodOptional<z.ZodBoolean>;
1367
+ editLink: z.ZodOptional<z.ZodBoolean>;
1368
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1369
+ footer: z.ZodOptional<z.ZodBoolean>;
1370
+ pageClass: z.ZodOptional<z.ZodString>;
1371
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1372
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1373
+ title: z.ZodOptional<z.ZodString>;
1374
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1375
+ description: z.ZodOptional<z.ZodString>;
1376
+ layout: z.ZodOptional<z.ZodString>;
1377
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1378
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1379
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1380
+ navbar: z.ZodOptional<z.ZodBoolean>;
1381
+ editLink: z.ZodOptional<z.ZodBoolean>;
1382
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1383
+ footer: z.ZodOptional<z.ZodBoolean>;
1384
+ pageClass: z.ZodOptional<z.ZodString>;
1385
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1386
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1387
+ title: z.ZodOptional<z.ZodString>;
1388
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1389
+ description: z.ZodOptional<z.ZodString>;
1390
+ layout: z.ZodOptional<z.ZodString>;
1391
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1392
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1393
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1394
+ navbar: z.ZodOptional<z.ZodBoolean>;
1395
+ editLink: z.ZodOptional<z.ZodBoolean>;
1396
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1397
+ footer: z.ZodOptional<z.ZodBoolean>;
1398
+ pageClass: z.ZodOptional<z.ZodString>;
1399
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1400
+ }, z.ZodTypeAny, "passthrough">>>;
1401
+ recursive: z.ZodOptional<z.ZodBoolean>;
1402
+ indexFile: z.ZodOptional<z.ZodString>;
1403
+ }, "strict", z.ZodTypeAny, {
1404
+ title?: string | {
1405
+ from: "auto" | "filename" | "heading" | "frontmatter";
1406
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1407
+ } | undefined;
1408
+ frontmatter?: z.objectOutputType<{
1409
+ title: z.ZodOptional<z.ZodString>;
1410
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1411
+ description: z.ZodOptional<z.ZodString>;
1412
+ layout: z.ZodOptional<z.ZodString>;
1413
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1414
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1415
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1416
+ navbar: z.ZodOptional<z.ZodBoolean>;
1417
+ editLink: z.ZodOptional<z.ZodBoolean>;
1418
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1419
+ footer: z.ZodOptional<z.ZodBoolean>;
1420
+ pageClass: z.ZodOptional<z.ZodString>;
1421
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1422
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1423
+ recursive?: boolean | undefined;
1424
+ indexFile?: string | undefined;
1425
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1426
+ from?: string | undefined;
1427
+ exclude?: string[] | undefined;
1428
+ }, {
1429
+ title?: string | {
1430
+ from: "auto" | "filename" | "heading" | "frontmatter";
1431
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1432
+ } | undefined;
1433
+ frontmatter?: z.objectInputType<{
1434
+ title: z.ZodOptional<z.ZodString>;
1435
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1436
+ description: z.ZodOptional<z.ZodString>;
1437
+ layout: z.ZodOptional<z.ZodString>;
1438
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1439
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1440
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1441
+ navbar: z.ZodOptional<z.ZodBoolean>;
1442
+ editLink: z.ZodOptional<z.ZodBoolean>;
1443
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1444
+ footer: z.ZodOptional<z.ZodBoolean>;
1445
+ pageClass: z.ZodOptional<z.ZodString>;
1446
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1447
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1448
+ recursive?: boolean | undefined;
1449
+ indexFile?: string | undefined;
1450
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1451
+ from?: string | undefined;
1452
+ exclude?: string[] | undefined;
1453
+ }>>;
1454
+ items: z.ZodOptional<z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">>;
1455
+ }, "strict", z.ZodTypeAny, {
1456
+ title: string | {
1457
+ from: "auto" | "filename" | "heading" | "frontmatter";
1458
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1459
+ };
1460
+ description: string;
1461
+ prefix: string;
1462
+ items?: unknown[] | undefined;
1463
+ icon?: string | undefined;
1464
+ iconColor?: string | undefined;
1465
+ tags?: string[] | undefined;
1466
+ badge?: {
1467
+ alt: string;
1468
+ src: string;
1469
+ } | undefined;
1470
+ discovery?: {
1471
+ title?: string | {
1472
+ from: "auto" | "filename" | "heading" | "frontmatter";
1473
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1474
+ } | undefined;
1475
+ frontmatter?: z.objectOutputType<{
1476
+ title: z.ZodOptional<z.ZodString>;
1477
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1478
+ description: z.ZodOptional<z.ZodString>;
1479
+ layout: z.ZodOptional<z.ZodString>;
1480
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1481
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1482
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1483
+ navbar: z.ZodOptional<z.ZodBoolean>;
1484
+ editLink: z.ZodOptional<z.ZodBoolean>;
1485
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1486
+ footer: z.ZodOptional<z.ZodBoolean>;
1487
+ pageClass: z.ZodOptional<z.ZodString>;
1488
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1489
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1490
+ recursive?: boolean | undefined;
1491
+ indexFile?: string | undefined;
1492
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1493
+ from?: string | undefined;
1494
+ exclude?: string[] | undefined;
1495
+ } | undefined;
1496
+ }, {
1497
+ title: string | {
1498
+ from: "auto" | "filename" | "heading" | "frontmatter";
1499
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1500
+ };
1501
+ description: string;
1502
+ prefix: string;
1503
+ items?: unknown[] | undefined;
1504
+ icon?: string | undefined;
1505
+ iconColor?: string | undefined;
1506
+ tags?: string[] | undefined;
1507
+ badge?: {
1508
+ alt: string;
1509
+ src: string;
1510
+ } | undefined;
1511
+ discovery?: {
1512
+ title?: string | {
1513
+ from: "auto" | "filename" | "heading" | "frontmatter";
1514
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1515
+ } | undefined;
1516
+ frontmatter?: z.objectInputType<{
1517
+ title: z.ZodOptional<z.ZodString>;
1518
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1519
+ description: z.ZodOptional<z.ZodString>;
1520
+ layout: z.ZodOptional<z.ZodString>;
1521
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1522
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1523
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1524
+ navbar: z.ZodOptional<z.ZodBoolean>;
1525
+ editLink: z.ZodOptional<z.ZodBoolean>;
1526
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1527
+ footer: z.ZodOptional<z.ZodBoolean>;
1528
+ pageClass: z.ZodOptional<z.ZodString>;
1529
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1530
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1531
+ recursive?: boolean | undefined;
1532
+ indexFile?: string | undefined;
1533
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1534
+ from?: string | undefined;
1535
+ exclude?: string[] | undefined;
1536
+ } | undefined;
1537
+ }>, "many">>;
1538
+ workspaces: z.ZodOptional<z.ZodArray<z.ZodObject<{
1539
+ title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1540
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1541
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1542
+ }, "strict", z.ZodTypeAny, {
1543
+ from: "auto" | "filename" | "heading" | "frontmatter";
1544
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1545
+ }, {
1546
+ from: "auto" | "filename" | "heading" | "frontmatter";
1547
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1548
+ }>]>;
1549
+ description: z.ZodString;
1550
+ icon: z.ZodString;
1551
+ items: z.ZodArray<z.ZodObject<{
1552
+ title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1553
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1554
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1555
+ }, "strict", z.ZodTypeAny, {
1556
+ from: "auto" | "filename" | "heading" | "frontmatter";
1557
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1558
+ }, {
1559
+ from: "auto" | "filename" | "heading" | "frontmatter";
1560
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1561
+ }>]>;
1562
+ icon: z.ZodOptional<z.ZodString>;
1563
+ iconColor: z.ZodOptional<z.ZodString>;
1564
+ description: z.ZodString;
1565
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1566
+ badge: z.ZodOptional<z.ZodObject<{
1567
+ src: z.ZodString;
1568
+ alt: z.ZodString;
1569
+ }, "strict", z.ZodTypeAny, {
1570
+ alt: string;
1571
+ src: string;
1572
+ }, {
1573
+ alt: string;
1574
+ src: string;
1575
+ }>>;
1576
+ prefix: z.ZodString;
1577
+ discovery: z.ZodOptional<z.ZodObject<{
1578
+ from: z.ZodOptional<z.ZodString>;
1579
+ title: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1580
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1581
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1582
+ }, "strict", z.ZodTypeAny, {
1583
+ from: "auto" | "filename" | "heading" | "frontmatter";
1584
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1585
+ }, {
1586
+ from: "auto" | "filename" | "heading" | "frontmatter";
1587
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1588
+ }>]>>;
1589
+ sort: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["alpha", "filename"]>, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
1590
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1591
+ frontmatter: z.ZodOptional<z.ZodObject<{
1592
+ title: z.ZodOptional<z.ZodString>;
1593
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1594
+ description: z.ZodOptional<z.ZodString>;
1595
+ layout: z.ZodOptional<z.ZodString>;
1596
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1597
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1598
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1599
+ navbar: z.ZodOptional<z.ZodBoolean>;
1600
+ editLink: z.ZodOptional<z.ZodBoolean>;
1601
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1602
+ footer: z.ZodOptional<z.ZodBoolean>;
1603
+ pageClass: z.ZodOptional<z.ZodString>;
1604
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1605
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1606
+ title: z.ZodOptional<z.ZodString>;
1607
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1608
+ description: z.ZodOptional<z.ZodString>;
1609
+ layout: z.ZodOptional<z.ZodString>;
1610
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1611
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1612
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1613
+ navbar: z.ZodOptional<z.ZodBoolean>;
1614
+ editLink: z.ZodOptional<z.ZodBoolean>;
1615
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1616
+ footer: z.ZodOptional<z.ZodBoolean>;
1617
+ pageClass: z.ZodOptional<z.ZodString>;
1618
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1619
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1620
+ title: z.ZodOptional<z.ZodString>;
1621
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1622
+ description: z.ZodOptional<z.ZodString>;
1623
+ layout: z.ZodOptional<z.ZodString>;
1624
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1625
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1626
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1627
+ navbar: z.ZodOptional<z.ZodBoolean>;
1628
+ editLink: z.ZodOptional<z.ZodBoolean>;
1629
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1630
+ footer: z.ZodOptional<z.ZodBoolean>;
1631
+ pageClass: z.ZodOptional<z.ZodString>;
1632
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1633
+ }, z.ZodTypeAny, "passthrough">>>;
1634
+ recursive: z.ZodOptional<z.ZodBoolean>;
1635
+ indexFile: z.ZodOptional<z.ZodString>;
1636
+ }, "strict", z.ZodTypeAny, {
1637
+ title?: string | {
1638
+ from: "auto" | "filename" | "heading" | "frontmatter";
1639
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1640
+ } | undefined;
1641
+ frontmatter?: z.objectOutputType<{
1642
+ title: z.ZodOptional<z.ZodString>;
1643
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1644
+ description: z.ZodOptional<z.ZodString>;
1645
+ layout: z.ZodOptional<z.ZodString>;
1646
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1647
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1648
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1649
+ navbar: z.ZodOptional<z.ZodBoolean>;
1650
+ editLink: z.ZodOptional<z.ZodBoolean>;
1651
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1652
+ footer: z.ZodOptional<z.ZodBoolean>;
1653
+ pageClass: z.ZodOptional<z.ZodString>;
1654
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1655
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1656
+ recursive?: boolean | undefined;
1657
+ indexFile?: string | undefined;
1658
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1659
+ from?: string | undefined;
1660
+ exclude?: string[] | undefined;
1661
+ }, {
1662
+ title?: string | {
1663
+ from: "auto" | "filename" | "heading" | "frontmatter";
1664
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1665
+ } | undefined;
1666
+ frontmatter?: z.objectInputType<{
1667
+ title: z.ZodOptional<z.ZodString>;
1668
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1669
+ description: z.ZodOptional<z.ZodString>;
1670
+ layout: z.ZodOptional<z.ZodString>;
1671
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1672
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1673
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1674
+ navbar: z.ZodOptional<z.ZodBoolean>;
1675
+ editLink: z.ZodOptional<z.ZodBoolean>;
1676
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1677
+ footer: z.ZodOptional<z.ZodBoolean>;
1678
+ pageClass: z.ZodOptional<z.ZodString>;
1679
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1680
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1681
+ recursive?: boolean | undefined;
1682
+ indexFile?: string | undefined;
1683
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1684
+ from?: string | undefined;
1685
+ exclude?: string[] | undefined;
1686
+ }>>;
1687
+ items: z.ZodOptional<z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">>;
1688
+ }, "strict", z.ZodTypeAny, {
1689
+ title: string | {
1690
+ from: "auto" | "filename" | "heading" | "frontmatter";
1691
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1692
+ };
1693
+ description: string;
1694
+ prefix: string;
1695
+ items?: unknown[] | undefined;
1696
+ icon?: string | undefined;
1697
+ iconColor?: string | undefined;
1698
+ tags?: string[] | undefined;
1699
+ badge?: {
1700
+ alt: string;
1701
+ src: string;
1702
+ } | undefined;
1703
+ discovery?: {
1704
+ title?: string | {
1705
+ from: "auto" | "filename" | "heading" | "frontmatter";
1706
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1707
+ } | undefined;
1708
+ frontmatter?: z.objectOutputType<{
1709
+ title: z.ZodOptional<z.ZodString>;
1710
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1711
+ description: z.ZodOptional<z.ZodString>;
1712
+ layout: z.ZodOptional<z.ZodString>;
1713
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1714
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1715
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1716
+ navbar: z.ZodOptional<z.ZodBoolean>;
1717
+ editLink: z.ZodOptional<z.ZodBoolean>;
1718
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1719
+ footer: z.ZodOptional<z.ZodBoolean>;
1720
+ pageClass: z.ZodOptional<z.ZodString>;
1721
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1722
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1723
+ recursive?: boolean | undefined;
1724
+ indexFile?: string | undefined;
1725
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1726
+ from?: string | undefined;
1727
+ exclude?: string[] | undefined;
1728
+ } | undefined;
1729
+ }, {
1730
+ title: string | {
1731
+ from: "auto" | "filename" | "heading" | "frontmatter";
1732
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1733
+ };
1734
+ description: string;
1735
+ prefix: string;
1736
+ items?: unknown[] | undefined;
1737
+ icon?: string | undefined;
1738
+ iconColor?: string | undefined;
1739
+ tags?: string[] | undefined;
1740
+ badge?: {
1741
+ alt: string;
1742
+ src: string;
1743
+ } | undefined;
1744
+ discovery?: {
1745
+ title?: string | {
1746
+ from: "auto" | "filename" | "heading" | "frontmatter";
1747
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1748
+ } | undefined;
1749
+ frontmatter?: z.objectInputType<{
1750
+ title: z.ZodOptional<z.ZodString>;
1751
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1752
+ description: z.ZodOptional<z.ZodString>;
1753
+ layout: z.ZodOptional<z.ZodString>;
1754
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1755
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1756
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1757
+ navbar: z.ZodOptional<z.ZodBoolean>;
1758
+ editLink: z.ZodOptional<z.ZodBoolean>;
1759
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1760
+ footer: z.ZodOptional<z.ZodBoolean>;
1761
+ pageClass: z.ZodOptional<z.ZodString>;
1762
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1763
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1764
+ recursive?: boolean | undefined;
1765
+ indexFile?: string | undefined;
1766
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1767
+ from?: string | undefined;
1768
+ exclude?: string[] | undefined;
1769
+ } | undefined;
1770
+ }>, "many">;
1771
+ link: z.ZodOptional<z.ZodString>;
1772
+ }, "strict", z.ZodTypeAny, {
1773
+ title: string | {
1774
+ from: "auto" | "filename" | "heading" | "frontmatter";
1775
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1776
+ };
1777
+ description: string;
1778
+ items: {
1779
+ title: string | {
1780
+ from: "auto" | "filename" | "heading" | "frontmatter";
1781
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1782
+ };
1783
+ description: string;
1784
+ prefix: string;
1785
+ items?: unknown[] | undefined;
1786
+ icon?: string | undefined;
1787
+ iconColor?: string | undefined;
1788
+ tags?: string[] | undefined;
1789
+ badge?: {
1790
+ alt: string;
1791
+ src: string;
1792
+ } | undefined;
1793
+ discovery?: {
1794
+ title?: string | {
1795
+ from: "auto" | "filename" | "heading" | "frontmatter";
1796
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1797
+ } | undefined;
1798
+ frontmatter?: z.objectOutputType<{
1799
+ title: z.ZodOptional<z.ZodString>;
1800
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1801
+ description: z.ZodOptional<z.ZodString>;
1802
+ layout: z.ZodOptional<z.ZodString>;
1803
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1804
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1805
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1806
+ navbar: z.ZodOptional<z.ZodBoolean>;
1807
+ editLink: z.ZodOptional<z.ZodBoolean>;
1808
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1809
+ footer: z.ZodOptional<z.ZodBoolean>;
1810
+ pageClass: z.ZodOptional<z.ZodString>;
1811
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1812
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1813
+ recursive?: boolean | undefined;
1814
+ indexFile?: string | undefined;
1815
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1816
+ from?: string | undefined;
1817
+ exclude?: string[] | undefined;
1818
+ } | undefined;
1819
+ }[];
1820
+ icon: string;
1821
+ link?: string | undefined;
1822
+ }, {
1823
+ title: string | {
1824
+ from: "auto" | "filename" | "heading" | "frontmatter";
1825
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1826
+ };
1827
+ description: string;
1828
+ items: {
1829
+ title: string | {
1830
+ from: "auto" | "filename" | "heading" | "frontmatter";
1831
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1832
+ };
1833
+ description: string;
1834
+ prefix: string;
1835
+ items?: unknown[] | undefined;
1836
+ icon?: string | undefined;
1837
+ iconColor?: string | undefined;
1838
+ tags?: string[] | undefined;
1839
+ badge?: {
1840
+ alt: string;
1841
+ src: string;
1842
+ } | undefined;
1843
+ discovery?: {
1844
+ title?: string | {
1845
+ from: "auto" | "filename" | "heading" | "frontmatter";
1846
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1847
+ } | undefined;
1848
+ frontmatter?: z.objectInputType<{
1849
+ title: z.ZodOptional<z.ZodString>;
1850
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1851
+ description: z.ZodOptional<z.ZodString>;
1852
+ layout: z.ZodOptional<z.ZodString>;
1853
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1854
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1855
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1856
+ navbar: z.ZodOptional<z.ZodBoolean>;
1857
+ editLink: z.ZodOptional<z.ZodBoolean>;
1858
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1859
+ footer: z.ZodOptional<z.ZodBoolean>;
1860
+ pageClass: z.ZodOptional<z.ZodString>;
1861
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1862
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1863
+ recursive?: boolean | undefined;
1864
+ indexFile?: string | undefined;
1865
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1866
+ from?: string | undefined;
1867
+ exclude?: string[] | undefined;
1868
+ } | undefined;
1869
+ }[];
1870
+ icon: string;
1871
+ link?: string | undefined;
1872
+ }>, "many">>;
1873
+ features: z.ZodOptional<z.ZodArray<z.ZodObject<{
1874
+ title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1875
+ from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1876
+ transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1877
+ }, "strict", z.ZodTypeAny, {
1878
+ from: "auto" | "filename" | "heading" | "frontmatter";
1879
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1880
+ }, {
1881
+ from: "auto" | "filename" | "heading" | "frontmatter";
1882
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1883
+ }>]>;
1884
+ description: z.ZodString;
1885
+ link: z.ZodOptional<z.ZodString>;
1886
+ icon: z.ZodOptional<z.ZodString>;
1887
+ }, "strict", z.ZodTypeAny, {
1888
+ title: string | {
1889
+ from: "auto" | "filename" | "heading" | "frontmatter";
1890
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1891
+ };
1892
+ description: string;
1893
+ link?: string | undefined;
1894
+ icon?: string | undefined;
1895
+ }, {
1896
+ title: string | {
1897
+ from: "auto" | "filename" | "heading" | "frontmatter";
1898
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1899
+ };
1900
+ description: string;
1901
+ link?: string | undefined;
1902
+ icon?: string | undefined;
1903
+ }>, "many">>;
1904
+ sections: z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">;
1905
+ nav: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"auto">, z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">]>>;
1906
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1907
+ openapi: z.ZodOptional<z.ZodObject<{
1908
+ spec: z.ZodString;
1909
+ prefix: z.ZodString;
1910
+ title: z.ZodOptional<z.ZodString>;
1911
+ }, "strict", z.ZodTypeAny, {
1912
+ prefix: string;
1913
+ spec: string;
1914
+ title?: string | undefined;
1915
+ }, {
1916
+ prefix: string;
1917
+ spec: string;
1918
+ title?: string | undefined;
1919
+ }>>;
1920
+ }, "strict", z.ZodTypeAny, {
1921
+ sections: unknown[];
1922
+ title?: string | undefined;
1923
+ description?: string | undefined;
1924
+ exclude?: string[] | undefined;
1925
+ icon?: string | undefined;
1926
+ theme?: {
1927
+ name: string;
1928
+ colorMode?: "dark" | "light" | "toggle" | undefined;
1929
+ switcher?: boolean | undefined;
1930
+ colors?: {
1931
+ brand?: string | undefined;
1932
+ brandLight?: string | undefined;
1933
+ brandDark?: string | undefined;
1934
+ brandSoft?: string | undefined;
1935
+ bg?: string | undefined;
1936
+ bgAlt?: string | undefined;
1937
+ bgElv?: string | undefined;
1938
+ bgSoft?: string | undefined;
1939
+ text1?: string | undefined;
1940
+ text2?: string | undefined;
1941
+ text3?: string | undefined;
1942
+ divider?: string | undefined;
1943
+ border?: string | undefined;
1944
+ homeBg?: string | undefined;
1945
+ } | undefined;
1946
+ darkColors?: {
1947
+ brand?: string | undefined;
1948
+ brandLight?: string | undefined;
1949
+ brandDark?: string | undefined;
1950
+ brandSoft?: string | undefined;
1951
+ bg?: string | undefined;
1952
+ bgAlt?: string | undefined;
1953
+ bgElv?: string | undefined;
1954
+ bgSoft?: string | undefined;
1955
+ text1?: string | undefined;
1956
+ text2?: string | undefined;
1957
+ text3?: string | undefined;
1958
+ divider?: string | undefined;
1959
+ border?: string | undefined;
1960
+ homeBg?: string | undefined;
1961
+ } | undefined;
1962
+ } | undefined;
1963
+ tagline?: string | undefined;
1964
+ apps?: {
1965
+ title: string | {
1966
+ from: "auto" | "filename" | "heading" | "frontmatter";
1967
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1968
+ };
1969
+ description: string;
1970
+ prefix: string;
1971
+ items?: unknown[] | undefined;
1972
+ icon?: string | undefined;
1973
+ iconColor?: string | undefined;
1974
+ tags?: string[] | undefined;
1975
+ badge?: {
1976
+ alt: string;
1977
+ src: string;
1978
+ } | undefined;
1979
+ discovery?: {
1980
+ title?: string | {
1981
+ from: "auto" | "filename" | "heading" | "frontmatter";
1982
+ transform?: ((...args: unknown[]) => unknown) | undefined;
1983
+ } | undefined;
1984
+ frontmatter?: z.objectOutputType<{
1985
+ title: z.ZodOptional<z.ZodString>;
1986
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1987
+ description: z.ZodOptional<z.ZodString>;
1988
+ layout: z.ZodOptional<z.ZodString>;
1989
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1990
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1991
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1992
+ navbar: z.ZodOptional<z.ZodBoolean>;
1993
+ editLink: z.ZodOptional<z.ZodBoolean>;
1994
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1995
+ footer: z.ZodOptional<z.ZodBoolean>;
1996
+ pageClass: z.ZodOptional<z.ZodString>;
1997
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1998
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1999
+ recursive?: boolean | undefined;
2000
+ indexFile?: string | undefined;
2001
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2002
+ from?: string | undefined;
2003
+ exclude?: string[] | undefined;
2004
+ } | undefined;
2005
+ }[] | undefined;
2006
+ packages?: {
2007
+ title: string | {
2008
+ from: "auto" | "filename" | "heading" | "frontmatter";
2009
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2010
+ };
2011
+ description: string;
2012
+ prefix: string;
2013
+ items?: unknown[] | undefined;
2014
+ icon?: string | undefined;
2015
+ iconColor?: string | undefined;
2016
+ tags?: string[] | undefined;
2017
+ badge?: {
2018
+ alt: string;
2019
+ src: string;
2020
+ } | undefined;
2021
+ discovery?: {
2022
+ title?: string | {
2023
+ from: "auto" | "filename" | "heading" | "frontmatter";
2024
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2025
+ } | undefined;
2026
+ frontmatter?: z.objectOutputType<{
2027
+ title: z.ZodOptional<z.ZodString>;
2028
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2029
+ description: z.ZodOptional<z.ZodString>;
2030
+ layout: z.ZodOptional<z.ZodString>;
2031
+ sidebar: z.ZodOptional<z.ZodBoolean>;
2032
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2033
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2034
+ navbar: z.ZodOptional<z.ZodBoolean>;
2035
+ editLink: z.ZodOptional<z.ZodBoolean>;
2036
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
2037
+ footer: z.ZodOptional<z.ZodBoolean>;
2038
+ pageClass: z.ZodOptional<z.ZodString>;
2039
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2040
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2041
+ recursive?: boolean | undefined;
2042
+ indexFile?: string | undefined;
2043
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2044
+ from?: string | undefined;
2045
+ exclude?: string[] | undefined;
2046
+ } | undefined;
2047
+ }[] | undefined;
2048
+ workspaces?: {
2049
+ title: string | {
2050
+ from: "auto" | "filename" | "heading" | "frontmatter";
2051
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2052
+ };
2053
+ description: string;
2054
+ items: {
2055
+ title: string | {
2056
+ from: "auto" | "filename" | "heading" | "frontmatter";
2057
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2058
+ };
2059
+ description: string;
2060
+ prefix: string;
2061
+ items?: unknown[] | undefined;
2062
+ icon?: string | undefined;
2063
+ iconColor?: string | undefined;
2064
+ tags?: string[] | undefined;
2065
+ badge?: {
2066
+ alt: string;
2067
+ src: string;
2068
+ } | undefined;
2069
+ discovery?: {
2070
+ title?: string | {
2071
+ from: "auto" | "filename" | "heading" | "frontmatter";
2072
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2073
+ } | undefined;
2074
+ frontmatter?: z.objectOutputType<{
2075
+ title: z.ZodOptional<z.ZodString>;
2076
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2077
+ description: z.ZodOptional<z.ZodString>;
2078
+ layout: z.ZodOptional<z.ZodString>;
2079
+ sidebar: z.ZodOptional<z.ZodBoolean>;
2080
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2081
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2082
+ navbar: z.ZodOptional<z.ZodBoolean>;
2083
+ editLink: z.ZodOptional<z.ZodBoolean>;
2084
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
2085
+ footer: z.ZodOptional<z.ZodBoolean>;
2086
+ pageClass: z.ZodOptional<z.ZodString>;
2087
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2088
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2089
+ recursive?: boolean | undefined;
2090
+ indexFile?: string | undefined;
2091
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2092
+ from?: string | undefined;
2093
+ exclude?: string[] | undefined;
2094
+ } | undefined;
2095
+ }[];
2096
+ icon: string;
2097
+ link?: string | undefined;
2098
+ }[] | undefined;
2099
+ features?: {
2100
+ title: string | {
2101
+ from: "auto" | "filename" | "heading" | "frontmatter";
2102
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2103
+ };
2104
+ description: string;
2105
+ link?: string | undefined;
2106
+ icon?: string | undefined;
2107
+ }[] | undefined;
2108
+ nav?: "auto" | unknown[] | undefined;
2109
+ openapi?: {
2110
+ prefix: string;
2111
+ spec: string;
2112
+ title?: string | undefined;
2113
+ } | undefined;
2114
+ }, {
2115
+ sections: unknown[];
2116
+ title?: string | undefined;
2117
+ description?: string | undefined;
2118
+ exclude?: string[] | undefined;
2119
+ icon?: string | undefined;
2120
+ theme?: {
2121
+ name?: string | undefined;
2122
+ colorMode?: "dark" | "light" | "toggle" | undefined;
2123
+ switcher?: boolean | undefined;
2124
+ colors?: {
2125
+ brand?: string | undefined;
2126
+ brandLight?: string | undefined;
2127
+ brandDark?: string | undefined;
2128
+ brandSoft?: string | undefined;
2129
+ bg?: string | undefined;
2130
+ bgAlt?: string | undefined;
2131
+ bgElv?: string | undefined;
2132
+ bgSoft?: string | undefined;
2133
+ text1?: string | undefined;
2134
+ text2?: string | undefined;
2135
+ text3?: string | undefined;
2136
+ divider?: string | undefined;
2137
+ border?: string | undefined;
2138
+ homeBg?: string | undefined;
2139
+ } | undefined;
2140
+ darkColors?: {
2141
+ brand?: string | undefined;
2142
+ brandLight?: string | undefined;
2143
+ brandDark?: string | undefined;
2144
+ brandSoft?: string | undefined;
2145
+ bg?: string | undefined;
2146
+ bgAlt?: string | undefined;
2147
+ bgElv?: string | undefined;
2148
+ bgSoft?: string | undefined;
2149
+ text1?: string | undefined;
2150
+ text2?: string | undefined;
2151
+ text3?: string | undefined;
2152
+ divider?: string | undefined;
2153
+ border?: string | undefined;
2154
+ homeBg?: string | undefined;
2155
+ } | undefined;
2156
+ } | undefined;
2157
+ tagline?: string | undefined;
2158
+ apps?: {
2159
+ title: string | {
2160
+ from: "auto" | "filename" | "heading" | "frontmatter";
2161
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2162
+ };
2163
+ description: string;
2164
+ prefix: string;
2165
+ items?: unknown[] | undefined;
2166
+ icon?: string | undefined;
2167
+ iconColor?: string | undefined;
2168
+ tags?: string[] | undefined;
2169
+ badge?: {
2170
+ alt: string;
2171
+ src: string;
2172
+ } | undefined;
2173
+ discovery?: {
2174
+ title?: string | {
2175
+ from: "auto" | "filename" | "heading" | "frontmatter";
2176
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2177
+ } | undefined;
2178
+ frontmatter?: z.objectInputType<{
2179
+ title: z.ZodOptional<z.ZodString>;
2180
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2181
+ description: z.ZodOptional<z.ZodString>;
2182
+ layout: z.ZodOptional<z.ZodString>;
2183
+ sidebar: z.ZodOptional<z.ZodBoolean>;
2184
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2185
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2186
+ navbar: z.ZodOptional<z.ZodBoolean>;
2187
+ editLink: z.ZodOptional<z.ZodBoolean>;
2188
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
2189
+ footer: z.ZodOptional<z.ZodBoolean>;
2190
+ pageClass: z.ZodOptional<z.ZodString>;
2191
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2192
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2193
+ recursive?: boolean | undefined;
2194
+ indexFile?: string | undefined;
2195
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2196
+ from?: string | undefined;
2197
+ exclude?: string[] | undefined;
2198
+ } | undefined;
2199
+ }[] | undefined;
2200
+ packages?: {
2201
+ title: string | {
2202
+ from: "auto" | "filename" | "heading" | "frontmatter";
2203
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2204
+ };
2205
+ description: string;
2206
+ prefix: string;
2207
+ items?: unknown[] | undefined;
2208
+ icon?: string | undefined;
2209
+ iconColor?: string | undefined;
2210
+ tags?: string[] | undefined;
2211
+ badge?: {
2212
+ alt: string;
2213
+ src: string;
2214
+ } | undefined;
2215
+ discovery?: {
2216
+ title?: string | {
2217
+ from: "auto" | "filename" | "heading" | "frontmatter";
2218
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2219
+ } | undefined;
2220
+ frontmatter?: z.objectInputType<{
2221
+ title: z.ZodOptional<z.ZodString>;
2222
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2223
+ description: z.ZodOptional<z.ZodString>;
2224
+ layout: z.ZodOptional<z.ZodString>;
2225
+ sidebar: z.ZodOptional<z.ZodBoolean>;
2226
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2227
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2228
+ navbar: z.ZodOptional<z.ZodBoolean>;
2229
+ editLink: z.ZodOptional<z.ZodBoolean>;
2230
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
2231
+ footer: z.ZodOptional<z.ZodBoolean>;
2232
+ pageClass: z.ZodOptional<z.ZodString>;
2233
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2234
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2235
+ recursive?: boolean | undefined;
2236
+ indexFile?: string | undefined;
2237
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2238
+ from?: string | undefined;
2239
+ exclude?: string[] | undefined;
2240
+ } | undefined;
2241
+ }[] | undefined;
2242
+ workspaces?: {
2243
+ title: string | {
2244
+ from: "auto" | "filename" | "heading" | "frontmatter";
2245
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2246
+ };
2247
+ description: string;
2248
+ items: {
2249
+ title: string | {
2250
+ from: "auto" | "filename" | "heading" | "frontmatter";
2251
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2252
+ };
2253
+ description: string;
2254
+ prefix: string;
2255
+ items?: unknown[] | undefined;
2256
+ icon?: string | undefined;
2257
+ iconColor?: string | undefined;
2258
+ tags?: string[] | undefined;
2259
+ badge?: {
2260
+ alt: string;
2261
+ src: string;
2262
+ } | undefined;
2263
+ discovery?: {
2264
+ title?: string | {
2265
+ from: "auto" | "filename" | "heading" | "frontmatter";
2266
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2267
+ } | undefined;
2268
+ frontmatter?: z.objectInputType<{
2269
+ title: z.ZodOptional<z.ZodString>;
2270
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2271
+ description: z.ZodOptional<z.ZodString>;
2272
+ layout: z.ZodOptional<z.ZodString>;
2273
+ sidebar: z.ZodOptional<z.ZodBoolean>;
2274
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2275
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2276
+ navbar: z.ZodOptional<z.ZodBoolean>;
2277
+ editLink: z.ZodOptional<z.ZodBoolean>;
2278
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
2279
+ footer: z.ZodOptional<z.ZodBoolean>;
2280
+ pageClass: z.ZodOptional<z.ZodString>;
2281
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2282
+ }, z.ZodTypeAny, "passthrough"> | undefined;
2283
+ recursive?: boolean | undefined;
2284
+ indexFile?: string | undefined;
2285
+ sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2286
+ from?: string | undefined;
2287
+ exclude?: string[] | undefined;
2288
+ } | undefined;
2289
+ }[];
2290
+ icon: string;
2291
+ link?: string | undefined;
2292
+ }[] | undefined;
2293
+ features?: {
2294
+ title: string | {
2295
+ from: "auto" | "filename" | "heading" | "frontmatter";
2296
+ transform?: ((...args: unknown[]) => unknown) | undefined;
2297
+ };
2298
+ description: string;
2299
+ link?: string | undefined;
2300
+ icon?: string | undefined;
2301
+ }[] | undefined;
2302
+ nav?: "auto" | unknown[] | undefined;
2303
+ openapi?: {
2304
+ prefix: string;
2305
+ spec: string;
2306
+ title?: string | undefined;
2307
+ } | undefined;
2308
+ }>;
2309
+
2310
+ export { }