import { TokenType, TokensType } from '../model'; import { BasicInlineTokenMap } from '../inline/model'; export declare const enum BlockTag { Space = 0, Heading = 1, Paragraph = 2, Quote = 3, Footnotes = 4, List = 5, OrdList = 6, Table = 7, Code = 8, Math = 9, Hr = 10, Text = 11 } export declare const enum BlockOrder { Newline = 0, Code = 1, Fences = 2, Math = 3, Heading = 4, NpTable = 5, Hr = 6, Quote = 7, List = 8, Abbrev = 9, Footnotes = 10, Def = 11, Table = 12, LHeading = 13, Paragraph = 14, Text = 15 } export declare const enum BlockAlign { None = 0, Left = 1, Center = 2, Right = 3 } export interface BlockHeading { [BlockTag.Heading]: { i: number; n: number; _: TokensType; }; } export interface BlockPhrase { _: TokensType; } export interface BlockParagraph { [BlockTag.Paragraph]: BlockPhrase; } export interface BlockText { [BlockTag.Text]: BlockPhrase; } export interface BlockNested { _: TokensType; } export interface BlockQuote { [BlockTag.Quote]: BlockNested; } export interface BlockFootnote extends BlockNested { i: number; l: string; } export interface BlockFootnotes { [BlockTag.Footnotes]: { i: number; _: BlockFootnote[]; }; } export interface BlockList { [BlockTag.List]: { _: BlockListItem[]; }; } export interface BlockOrdList { [BlockTag.OrdList]: { s?: number; _: BlockListItem[]; }; } export interface BlockListItem { t?: 1; c?: 1; _: TokensType; } export interface BlockTable { [BlockTag.Table]: { h: BlockTableCell[]; a: BlockAlign[]; _: BlockTableRow[]; }; } export declare type BlockTableCell = TokensType; export declare type BlockTableRow = BlockTableCell[]; export interface BlockHr { [BlockTag.Hr]: BlockEmpty; } export interface BlockEmpty { } export interface BlockCode { [BlockTag.Code]: { l?: string; _: string; }; } export interface BlockMath { [BlockTag.Math]: { s?: string; _: string; }; } export interface BlockSpace { [BlockTag.Space]: BlockEmpty; } export interface BlockTokenMap extends BlockSpace, BlockCode, BlockHeading, BlockHr, BlockQuote, BlockList, BlockOrdList, BlockParagraph, BlockText, BlockTable { } export interface MetaHeading { t: string; n: number; } export interface MetaHeadings { h: MetaHeading[]; } export interface MetaLink { l: string; t?: string; } export interface MetaLinks { l: Record; } export interface MetaAbbrevs { a: Record; } export interface MetaFootnotes { f: string[]; } export interface MetaData extends MetaHeadings, MetaLinks { } export interface BasicBlockTokenMap extends BlockTokenMap { } export declare type BasicBlockToken = TokenType;