import type { GrayMatterFile } from 'gray-matter'; export interface FileMatter { readonly fileName: string; readonly fullPath: string; readonly matterResult: GrayMatterFile; } export interface FooterLink { readonly text: string; readonly url: string; } export interface SiteConfig { readonly base_url: string; readonly repo_url: string; readonly site_title: string; readonly site_description: string; readonly site_image: string; readonly site_keywords: string[]; readonly footer: { buttons: FooterLink[]; links: FooterLink[]; }; } export interface Overview { title: string; description: string; } export interface GetStarted { readonly title: string; readonly url: string; } export interface CallToAction { readonly title: string; readonly subtitle: string; readonly button_text: string; readonly url: string; } export interface FeatureIntro { title: string; subtitle1: string; subtitle2: string; } export interface Feature { title: string; description: string; image: string; } export interface HomepageData { readonly title: string; readonly subtitle: string; readonly get_started: GetStarted; readonly overviews: Overview[]; readonly features_intro: FeatureIntro; readonly features: Feature[]; readonly call_to_action: CallToAction; } export interface Release { readonly date: string; readonly version: string; readonly type: 'major' | 'minor' | 'patch' | 'pre'; readonly description?: string; } export interface DocsData { readonly group: string; readonly title: string; readonly weight: number; readonly slug: string; readonly beta?: boolean; readonly deprecated?: boolean; } export interface DocsPageHeading { readonly title: string; readonly anchor: string; } export interface DocsPage { readonly fullPath: string; readonly headings: DocsPageHeading[]; readonly textContent: string; readonly content: string; readonly data: DocsData; } export interface DocsGroupLink { readonly title: string; readonly slug: string; readonly beta: boolean; readonly deprecated: boolean; } export interface DocsGroup { readonly name: string; readonly title: string; readonly links: DocsGroupLink[]; } export interface MenuGroup { readonly name: string; readonly title: string; } export interface Menu { readonly docs: MenuGroup[]; } export interface CommunityLink { readonly title: string; readonly description: string; readonly url: string; } export interface CommunityLinksSection { readonly title: string; readonly links: CommunityLink[]; } export interface CommunityData { readonly title: string; readonly subtitle: string; readonly sections: CommunityLinksSection[]; } export interface MenuLink { readonly title: string; readonly url: string; readonly beta?: boolean; readonly deprecated?: boolean; readonly target?: '_blank'; } export interface MenuLinkSubGroup { readonly title: string; readonly links: MenuLink[]; } export interface MenuLinkGroup { readonly title: string; readonly path: string; readonly groups: MenuLinkSubGroup[]; } export type MenuItem = MenuLinkGroup | MenuLink; export interface SearchablePage { readonly title: string; readonly url: string; readonly headings: DocsPageHeading[]; readonly textContent: string; }