import type { Component } from 'svelte'; import type { NavigationItem } from 'markpage'; // Component node parsed from markdown export interface ComponentNode { name: string; props: Record; children?: string; position: { start: number; end: number }; } // Component registration options export interface ComponentOptions { defaultProps?: Record; validate?: (props: Record) => boolean | string; } // Registered component information export interface RegisteredComponent { component: Component; options: ComponentOptions; } // Component parsing result export interface ParsedContent { type: 'text' | 'component'; content: string | ComponentNode; } // MarkpageSvelte instance options export interface MarkpageSvelteOptions { enableComponents?: boolean; strictMode?: boolean; } // Component render context export interface RenderContext { path: string; navigation: NavigationItem[]; content: Record; } // Re-export MarkpageOptions export { MarkpageOptions, type MarkdownExtension, type MarkdownExtensionSet } from './markdown/MarkpageOptions.js';