export declare const enum NodeType { Str = "Str", Emph = "Emph", Strong = "Strong", Strikeout = "Strikeout", Superscript = "Superscript", Subscript = "Subscript", SmallCaps = "SmallCaps", Quoted = "Quoted", Cite = "Cite", Code = "Code", Space = "Space", SoftBreak = "SoftBreak", LineBreak = "LineBreak", Math = "Math", RawInline = "RawInline", Link = "Link", Image = "Image", Note = "Note", Span = "Span", Plain = "Plain", Para = "Para", LineBlock = "LineBlock", CodeBlock = "CodeBlock", RawBlock = "RawBlock", BlockQuote = "BlockQuote", OrderedList = "OrderedList", BulletList = "BulletList", DefinitionList = "DefinitionList", Header = "Header", HorizontalRule = "HorizontalRule", Table = "Table", Div = "Div", Null = "Null", MetaMap = "MetaMap", MetaList = "MetaList", MetaBool = "MetaBool", MetaInlines = "MetaInlines", MetaString = "MetaString", MetaBlocks = "MetaBlocks", AlignLeft = "AlignLeft", AlignRight = "AlignRight", AlignCenter = "AlignCenter", AlignDefault = "AlignDefault", DefaultStyle = "DefaultStyle", Example = "Example", Decimal = "Decimal", LowerRoman = "LowerRoman", UpperRoman = "UpperRoman", LowerAlpha = "LowerAlpha", UpperAlpha = "UpperAlpha", DefaultDelim = "DefaultDelim", Period = "Period", OneParen = "OneParen", TwoParens = "TwoParens", AuthorInText = "AuthorInText", SuppressAuthor = "SuppressAuthor", NormalCitation = "NormalCitation", DisplayMath = "DisplayMath", InlineMath = "InlineMath", SingleQuote = "SingleQuote", DoubleQuote = "DoubleQuote" } export interface Node { t: T; c: T extends keyof NodeContent ? NodeContent[T] : undefined; } export type GetNodeType = N extends Node ? T : never; export type AlignmentNode = Node | Node | Node | Node; export type InlineNode = Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node; export type BlockNode = Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node | Node; export type MetaNode = Node | Node | Node | Node | Node | Node; export type ListNumberStyleNode = Node | Node | Node | Node | Node | Node | Node; export type ListNumberDelimNode = Node | Node | Node | Node; export type CitationModeNode = Node | Node | Node; export type MathTypeNode = Node | Node; export type QuoteNode = Node | Node; export interface NodeContent { [NodeType.Str]: string; [NodeType.Emph]: InlineNode[]; [NodeType.Strong]: InlineNode[]; [NodeType.Strikeout]: InlineNode[]; [NodeType.Superscript]: InlineNode[]; [NodeType.Subscript]: InlineNode[]; [NodeType.SmallCaps]: InlineNode[]; [NodeType.Quoted]: [quoteType: QuoteNode, content: InlineNode[]]; [NodeType.Cite]: [citations: Citation[], content: InlineNode[]]; [NodeType.Code]: [attributes: Attributes, value: string]; [NodeType.Math]: [mathType: MathTypeNode, value: string]; [NodeType.RawInline]: [format: string, value: string]; [NodeType.Link]: [ attributes: Attributes, content: Array, url: [value: string, type: string] ]; [NodeType.Image]: [ attributes: Attributes, content: Array, url: [value: string, type: string] ]; [NodeType.Note]: BlockNode[]; [NodeType.Span]: [attributes: Attributes, content: InlineNode[]]; [NodeType.Plain]: InlineNode[]; [NodeType.Para]: InlineNode[]; [NodeType.LineBlock]: InlineNode[][]; [NodeType.CodeBlock]: [attributes: Attributes, content: string]; [NodeType.RawBlock]: [format: string, content: string]; [NodeType.BlockQuote]: BlockNode[]; [NodeType.OrderedList]: [ [ startingNo: number, numberingStyle: ListNumberStyleNode, delimiterType: ListNumberDelimNode ], BlockNode[][] ]; [NodeType.BulletList]: BlockNode[][]; [NodeType.DefinitionList]: [InlineNode[], BlockNode[][]][]; [NodeType.Header]: [number, Attributes, InlineNode[]]; [NodeType.Table]: [InlineNode[], AlignmentNode[], number[], BlockNode[][], BlockNode[][][]]; [NodeType.Div]: [attributes: Attributes, content: BlockNode[]]; [NodeType.Null]: undefined; [NodeType.MetaMap]: Record; [NodeType.MetaList]: MetaNode[]; [NodeType.MetaBool]: boolean; [NodeType.MetaInlines]: InlineNode[]; [NodeType.MetaString]: string; [NodeType.MetaBlocks]: BlockNode[]; } export type Document = { 'pandoc-api-version': number[]; meta: NodeContent[NodeType.MetaMap]; blocks: BlockNode[]; }; export type Attributes = [ id: string, classes: string[], attributes: [key: string, value: string][] ]; export type Citation = { citationId: string; citationPrefix: InlineNode[]; citationSuffix: InlineNode[]; citationMode: CitationModeNode; citationNoteNum: number; citationHash: number; }; export type AnyNode = AlignmentNode | InlineNode | BlockNode | MetaNode | ListNumberDelimNode | ListNumberStyleNode | CitationModeNode | MathTypeNode | QuoteNode; export type ParentNode = Document | AnyNode;