export declare type UnknownToken = any; export declare type TokenTypeByTag = Map[Tag] extends object ? { $: Tag; } & Map[Tag] : never; export declare type TokenType = Map extends object ? { [Tag in keyof Map]: TokenTypeByTag; }[keyof Map] : never; export declare type TokensType = TokenType[]; export interface TaggedToken { $: Tag; } export declare type TokenTag = Token extends TaggedToken ? Tag : never; export declare type TokenByTag = Token extends TaggedToken ? Token : never; export interface HasMeta { _: object; } export interface HasContexts { $: object; } export declare type InitTag = 0; export interface HasInit { $: { [0]: any; }; } export declare type ContextKey = keyof CtxMap['$']; export declare type ContextToken> = CtxMap['$'][Ctx]; export declare type ContextMeta = CtxMap['_']; export declare type ParserResult> = [ContextMeta, ContextToken[]]; export declare const enum ContextTag { Block = 0, BlockNest = 1, Inline = 2, InlineLink = 3 } export interface ContextMap { _: Meta; $: { [ContextTag.Block]: TokenType; [ContextTag.BlockNest]: TokenType; [ContextTag.Inline]: TokenType; [ContextTag.InlineLink]: TokenType; }; } export interface NoMeta { }