import type { BlockContent, Data as MdastData, DefinitionContent, Parent as MdastParent, PhrasingContent } from "mdast"; export type DirectiveAttributes = Record; export interface ContainerDirective extends MdastParent { type: "containerDirective"; name: string; attributes?: DirectiveAttributes | null | undefined; children: Array; data?: ContainerDirectiveData | undefined; } export interface ContainerDirectiveData extends MdastData { } export interface LeafDirective extends MdastParent { type: "leafDirective"; name: string; attributes?: DirectiveAttributes | null | undefined; children: PhrasingContent[]; data?: LeafDirectiveData | undefined; } export interface LeafDirectiveData extends MdastData { } export interface TextDirective extends MdastParent { type: "textDirective"; name: string; attributes?: DirectiveAttributes | null | undefined; children: PhrasingContent[]; data?: TextDirectiveData | undefined; } export interface TextDirectiveData extends MdastData { } declare module "mdast" { interface BlockContentMap { containerDirective: ContainerDirective; leafDirective: LeafDirective; } interface ParagraphData { directiveLabel?: boolean | null | undefined; } interface PhrasingContentMap { textDirective: TextDirective; } interface RootContentMap { containerDirective: ContainerDirective; leafDirective: LeafDirective; textDirective: TextDirective; } }