import { OrgNode } from './org-node.js'; export declare enum NodeType { Root = "root", Headline = "headline", Text = "text", Unresolved = "unresolved", Operator = "operator", Checkbox = "checkbox", Indent = "indent", NewLine = "newLine", Date = "date", DateRange = "dateRange", Comment = "comment", TodoKeyword = "todoKeyword", TagList = "tagList", List = "list", ListItem = "listItem", Progress = "progress", ListTag = "listTag", Bold = "bold", Crossed = "crossed", InlineCode = "inlineCode", Underline = "underline", Verbatim = "verbatim", Italic = "italic", LatexFragment = "latexFragment", LatexEnvironment = "latexEnvironment", SrcBlock = "srcBlock", BlockHeader = "blockHeader", PropertyDrawer = "propertyDrawer", Property = "property", BlockProperty = "blockProperty", SrcLanguage = "srcLanguage", BlockFooter = "blockFooter", BlockBody = "blockBody", QuoteBlock = "quoteBlock", ExampleBlock = "exampleBlock", HtmlBlock = "htmlBlock", ExportBlock = "exportBlock", CommentBlock = "commentBlock", HeaderArg = "headerArg", InlineHtml = "inlineHtml", FixedWidth = "fixedWidth", Priority = "priority", Keyword = "keyword", Link = "link", RawLink = "rawLink", LinkUrl = "linkUrl", LinkName = "linkName", Entity = "entity", HorizontalRule = "horizontalRule", Planning = "planning", PlanningKeyword = "planningKeyword", Clock = "clock", ClockKeyword = "clockKeyword", ClockDuration = "clockDuration", Section = "section", Title = "title", Table = "table", TableDelimiter = "tableDelimiter", TableCell = "tableCell", TableRow = "tableRow" } export type Block = NodeType.SrcBlock | NodeType.QuoteBlock | NodeType.HtmlBlock | NodeType.ExportBlock | NodeType.ExampleBlock | NodeType.CommentBlock; export declare enum TokenType { Headline = "headline", Text = "text", NewLine = "newLine", Keyword = "keyword", LatexEnvironmentKeyword = "latexEnvironmentKeyword", Bracket = "bracket", LatexBracket = "latexBracket", Comment = "comment", Operator = "operator", Indent = "indent", Entity = "entity", TableDelimiter = "tableDelimiter", HorizontalRule = "horizontalRule", TableOperator = "tableOperator", Link = "link", OpenMarkup = "openMarkup", CloseMarkup = "closeMarkup", PlanningKeyword = "planningKeyword", ClockKeyword = "clockKeyword" } export interface RawToken { type: TokenType; value: string; } export declare class Token { readonly start: number; end: number; value: string; type: TokenType; next?: Token; prev?: Token; constructor(token: RawToken, start: number); get isBlank(): boolean; appendText(text: string): void; setType(t: TokenType): void; isType(...t: TokenType[]): boolean; setNextToken(token: Token): void; setPrevToken(token: Token): void; } export type BlockProperties = { [key: string]: string; }; export interface OrgStruct { type: NodeType; start?: number; end?: number; value?: string; children?: OrgStruct[]; properties?: BlockProperties; checked?: boolean; priority?: string; section?: OrgStruct; level?: number; ordered?: boolean; language?: string; title?: OrgNode; } export interface SrcBlockMetaInfo { language?: string; tangle?: string; [key: string]: string | undefined; } export declare const linkTypes: readonly ["img", "id", "raw", "file", "network", "attachment", "docview", "news", "mailto", "mhe", "rmail", "gnus", "bbdb", "irc", "help", "info", "shell", "elisp"]; export type LinkType = (typeof linkTypes)[number] | 'image'; export type RepeaterType = '+' | '++' | '.+' | '-' | '--'; export type TimeUnit = 'h' | 'd' | 'w' | 'm' | 'y'; export interface OrgRepeater { type: RepeaterType; value: number; unit: TimeUnit; } export interface OrgDate { date: string; to?: string; active: boolean; hasTime: boolean; repeater?: OrgRepeater; warning?: OrgRepeater; start: number; end: number; } export interface ClockEntry { date?: string; to?: string; start: number; end: number; } export interface Heading { title: string; level: number; start: number; end: number; priority?: string; tags?: string[]; todoKeyword?: string; scheduled?: OrgDate; deadline?: OrgDate; closed?: OrgDate; clocks?: ClockEntry[]; } export interface MetaInfo { id?: string; title?: string; description?: string; connectedNotes?: { [id: string]: string; }; images?: string[]; tags?: string[]; headings?: Heading[]; category?: string; previewImg?: string; linkType?: LinkType; fileTags?: string[]; [key: string]: string | string[] | undefined | boolean | Heading[] | OrgDate | ClockEntry[] | { [id: string]: string; }; } export interface ParserConfiguration { todoKeywords?: string[]; imgExtensions?: string[]; httpLinkRegexp?: RegExp; } export type BlockPosition = 'begin' | 'end'; export type BlockType = 'src' | 'html' | 'quote' | string;