import type { FromSchema } from "json-schema-to-ts"; export type JsonSchema = Record; export type BaseNode = { type: string; children?: MarkdownNode[]; position?: Record; data?: Record; }; type WithBase = Omit & BaseNode; export declare const RootSchema: { readonly "x-lix-key": "markdown_wc_root"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown AST root node (mdast-shaped). Holds all top-level children."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "root"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type", "children"]; readonly additionalProperties: false; }; export declare const DocumentSchema: { readonly "x-lix-key": "markdown_wc_document"; readonly "x-lix-version": "1.0"; readonly description: "Top-level block order for a Markdown document. Stores an array of block ids (node.data.id) to reconstruct the document order without reparsing."; readonly type: "object"; readonly properties: { readonly order: { readonly type: "array"; readonly items: { readonly type: "string"; }; }; }; readonly required: readonly ["order"]; readonly additionalProperties: false; }; export type ParagraphNode = WithBase>; export declare const ParagraphSchema: { readonly "x-lix-key": "markdown_wc_paragraph"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown paragraph block."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "paragraph"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type HeadingNode = WithBase>; export declare const HeadingSchema: { readonly "x-lix-key": "markdown_wc_heading"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown heading block (depth 1–6)."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "heading"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly depth: { readonly type: "integer"; readonly minimum: 1; readonly maximum: 6; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type ListNode = WithBase>; export declare const ListSchema: { readonly "x-lix-key": "markdown_wc_list"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown list block (ordered or unordered)."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "list"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly ordered: { readonly type: "boolean"; }; readonly start: { readonly type: readonly ["integer", "null"]; }; readonly spread: { readonly type: readonly ["boolean", "null"]; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type ListItemNode = WithBase>; export declare const ListItemSchema: { readonly "x-lix-key": "markdown_wc_list_item"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown list item."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "listItem"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly checked: { readonly type: readonly ["boolean", "null"]; }; readonly spread: { readonly type: readonly ["boolean", "null"]; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type BlockquoteNode = WithBase>; export declare const BlockquoteSchema: { readonly "x-lix-key": "markdown_wc_blockquote"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown blockquote block."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "blockquote"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type CodeNode = WithBase>; export declare const CodeSchema: { readonly "x-lix-key": "markdown_wc_code"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown fenced code block."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "code"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly value: { readonly type: "string"; }; readonly lang: { readonly type: readonly ["string", "null"]; }; readonly meta: { readonly type: readonly ["string", "null"]; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type InlineCodeNode = WithBase>; export declare const InlineCodeSchema: { readonly "x-lix-key": "markdown_wc_inline_code"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Inline code span."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "inlineCode"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly value: { readonly type: "string"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type ThematicBreakNode = WithBase>; export declare const ThematicBreakSchema: { readonly "x-lix-key": "markdown_wc_thematic_break"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Horizontal rule (thematic break)."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "thematicBreak"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type BreakNode = WithBase>; export declare const BreakSchema: { readonly "x-lix-key": "markdown_wc_break"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Hard line break."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "break"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type HtmlNode = WithBase>; export declare const HtmlSchema: { readonly "x-lix-key": "markdown_wc_html"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Raw HTML block."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "html"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly value: { readonly type: "string"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type ImageNode = WithBase>; export declare const ImageSchema: { readonly "x-lix-key": "markdown_wc_image"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Image node."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "image"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly url: { readonly type: "string"; }; readonly title: { readonly type: readonly ["string", "null"]; }; readonly alt: { readonly type: readonly ["string", "null"]; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type LinkNode = WithBase>; export declare const LinkSchema: { readonly "x-lix-key": "markdown_wc_link"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Link node containing inline children."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "link"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly url: { readonly type: "string"; }; readonly title: { readonly type: readonly ["string", "null"]; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type EmphasisNode = WithBase>; export declare const EmphasisSchema: { readonly "x-lix-key": "markdown_wc_emphasis"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Emphasis (italic) inline node."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "emphasis"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type StrongNode = WithBase>; export declare const StrongSchema: { readonly "x-lix-key": "markdown_wc_strong"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Strong (bold) inline node."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "strong"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type DeleteNode = WithBase>; export declare const DeleteSchema: { readonly "x-lix-key": "markdown_wc_delete"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Delete/Strikethrough inline node."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "delete"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type TableNode = WithBase>; export declare const TableSchema: { readonly "x-lix-key": "markdown_wc_table"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Markdown table block (GFM)."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "table"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly align: { readonly type: "array"; readonly items: { readonly type: readonly ["string", "null"]; readonly enum: readonly ["left", "right", "center", null]; }; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type TableRowNode = WithBase>; export declare const TableRowSchema: { readonly "x-lix-key": "markdown_wc_table_row"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Table row (GFM)."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "tableRow"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type TableCellNode = WithBase>; export declare const TableCellSchema: { readonly "x-lix-key": "markdown_wc_table_cell"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Table cell (GFM)."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "tableCell"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type TextNode = WithBase>; export declare const TextSchema: { readonly "x-lix-key": "markdown_wc_text"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "Plain text leaf node."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "text"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly value: { readonly type: "string"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; export type YamlNode = WithBase>; export declare const YamlSchema: { readonly "x-lix-key": "markdown_wc_yaml"; readonly "x-lix-version": "1.0"; readonly "x-lix-unique": readonly [readonly ["/data/id"]]; readonly description: "YAML frontmatter block."; readonly type: "object"; readonly properties: { readonly type: { readonly const: "yaml"; }; readonly children: { readonly type: "array"; }; readonly position: { readonly type: "object"; }; readonly value: { readonly type: "string"; }; readonly data: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; }; readonly additionalProperties: true; }; }; readonly required: readonly ["type"]; readonly additionalProperties: false; }; /** * Runtime map from mdast `node.type` → JSON schema. * * !Mapping of Markdown AST node `type` to its schema. * !Excludes persistence-only schemas such as `DocumentSchema`. * * Why this exists: * * - Generic code only knows `node.type` at runtime (e.g., during AST walks, diffing, persistence). * A data-driven map avoids hardcoding switch/case over every node type or importing each schema by name. * - Stable lookup by type string keeps callsites decoupled from export names and enables easy extension. * * @example * // Generic validation/dispatch by node.type * import { schemasByType } from "@opral/markdown-wc"; * * function schemaFor(node: { type: string }) { * return schemasByType[node.type]; * } * * @example * // Persisting changes with per-type schemas * import { schemasByType } from "@opral/markdown-wc"; * * function toDetectedChange(node: any, id: string) { * const schema = schemasByType[node.type]; * return { entity_id: id, schema, snapshot_content: node }; * } * * @example * // Querying by schema key (known type) * import * as AstSchemas from "@opral/markdown-wc"; * * db.select("changes") * .where("schema_key", "=", AstSchemas.schemasByType.paragraph["x-lix-key"]); */ export declare const schemasByType: Record; /** * Collection of Markdown schemas including AST nodes and persistence metadata like `DocumentSchema`. */ export declare const allSchemas: JsonSchema[]; export type AstRoot = FromSchema; export type MarkdownNode = ParagraphNode | HeadingNode | ListNode | ListItemNode | BlockquoteNode | CodeNode | InlineCodeNode | ThematicBreakNode | BreakNode | HtmlNode | ImageNode | LinkNode | EmphasisNode | StrongNode | DeleteNode | TableNode | TableRowNode | TableCellNode | TextNode | YamlNode; export type Ast = Omit & { children: MarkdownNode[]; }; export {}; //# sourceMappingURL=schemas.d.ts.map