import { BLOCKS } from './blocks.js'; import { INLINES } from './inlines.js'; import { ListItemBlockEnum, TopLevelBlockEnum } from './schemaConstraints.js'; /** * @additionalProperties true */ export type NodeData = Record; export interface Node { readonly nodeType: string; data: NodeData; } export interface Block extends Node { nodeType: BLOCKS; content: Array; } export interface Inline extends Node { nodeType: INLINES; content: Array; } export interface TopLevelBlock extends Block { nodeType: TopLevelBlockEnum; } export interface Document extends Node { nodeType: BLOCKS.DOCUMENT; content: TopLevelBlock[]; } export interface Text extends Node { nodeType: 'text'; value: string; marks: Mark[]; } export interface Mark { type: string; } export interface ListItemBlock extends Block { nodeType: ListItemBlockEnum; }