import { type App, type Component, type Ref, type ShallowRef } from 'vue'; import { type Router } from './router'; import { type PageModule, type ContentTree, type SchemaDefinition, type DirectoryListing } from '@/shared'; export { useTdContent, } from './composables/useTdContent'; export { useRouter, useRoute, } from './router'; export { Content, } from './components/Content'; export interface TypedownSiteConfig { /** Site title */ title: string; /** Site description */ description: string; /** URL base path (e.g. "/" or "/blog") */ basePath: string; /** Repository URL */ repo?: string; /** Site author */ author?: string; /** License name */ license?: string; /** Navigation links */ nav?: { title: string; link: string; icon?: string; }[]; } export interface TypedownSiteData { /** Whether the data has been fetched from the server */ ready: boolean; /** Content files as a recursive directory tree */ contentTree: ContentTree; /** Serialized MiniSearch index for full-text search */ searchIndex?: string; /** Schema definitions keyed by schema name */ schemas: Record; /** Directory listings keyed by URL path */ directoryListings: Record; } type PageLoader = (path: string) => Promise; export declare function createTypedownApp(loadPageModule: (path: string) => Promise, Layout: Component, config?: Partial, data?: Partial): Promise<{ app: App; router: Router; searchIndex: ShallowRef; siteData: Ref; }>; export declare function usePageLoader(): PageLoader | undefined; export declare function useSearchIndex(): ShallowRef; export declare function useSiteConfig(): { withBase(path: string): string; /** Site title */ title: string; /** Site description */ description: string; /** URL base path (e.g. "/" or "/blog") */ basePath: string; /** Repository URL */ repo?: string; /** Site author */ author?: string; /** License name */ license?: string; /** Navigation links */ nav?: { title: string; link: string; icon?: string; }[]; }; export declare function useSiteData(): Ref; //# sourceMappingURL=index.d.ts.map