// types shared between server and client import type { UseDarkOptions } from '@vueuse/core' import type { SSRContext } from 'vue/server-renderer' export type { DefaultTheme } from './default-theme.js' export type Awaitable = T | PromiseLike export interface PageData { relativePath: string filePath: string // differs from relativePath in case of path rewrites title: string titleTemplate?: string | boolean description: string headers: Header[] frontmatter: Record params?: Record isNotFound?: boolean lastUpdated?: number } /** * SFC block extracted from markdown */ export interface SfcBlock { /** * The type of the block */ type: string /** * The content, including open-tag and close-tag */ content: string /** * The content that stripped open-tag and close-tag off */ contentStripped: string /** * The open-tag */ tagOpen: string /** * The close-tag */ tagClose: string } export interface MarkdownSfcBlocks { /** * The `