import { Parents, Nodes, RootContent } from 'mdast'; import Delta from 'quill-delta'; type Logger = (message: string, ...args: unknown[]) => void; type Op = Delta['ops'][number]; type ConvertExtra = Record; interface HandlerUtils { convertChildren(parent: Parents | null, node: Nodes, op?: Op, indent?: number, extra?: ConvertExtra): Delta; inlineFormat(parent: Parents, node: RootContent, op: Op, attributes: Record): Delta | null; embedFormat(op: Op, value: Record, attributes?: Record | null): Delta; generateId(): string; log: Logger; } interface ConvertContext { parent: Parents | null; node: Parents; op: Op; indent: number; extra?: ConvertExtra; idx: number; converter: HandlerUtils; } type BlockHandler = (ctx: ConvertContext, child: RootContent) => Delta; type InlineHandler = (ctx: ConvertContext, child: RootContent) => Delta | null; declare function blockHandler(fn: (ctx: ConvertContext, child: T) => Delta): BlockHandler; declare function inlineHandler(fn: (ctx: ConvertContext, child: T) => Delta | null): InlineHandler; interface MarkdownToQuillOptions { logger?: Logger; tableIdGenerator?: () => string; blockHandlers?: Record; inlineHandlers?: Record; blockTypes?: string[]; mdastExtensions?: object[]; micromarkExtensions?: object[]; } declare function createDefaultBlockHandlers(): Record; declare function createDefaultInlineHandlers(): Record; declare class MarkdownToQuill { private readonly options; private readonly log; private readonly blockTypes; private readonly blockHandlers; private readonly inlineHandlers; constructor(options?: MarkdownToQuillOptions); convert(text: string): Delta; } export { type BlockHandler, type ConvertContext, type ConvertExtra, type InlineHandler, type Logger, MarkdownToQuill, type MarkdownToQuillOptions, type Op, blockHandler, createDefaultBlockHandlers, createDefaultInlineHandlers, inlineHandler };