import { Token } from './types.js'; import { TokenSource } from './TokenSource.js'; import { SmartOutput } from '@kerebron/editor/utilities'; export declare function writeIndented(output: SmartOutput, text: string, currentCtx: SerializerContext, token?: Token): void; type ListType = 'ul' | 'ol' | 'dl' | 'tl'; export interface SerializerContext { lineBreak: string; level: number; meta: Record; metaObj: Record; blockquoteCnt: number; footnoteCnt: number; listPath: Array; listType?: ListType; itemRow: number; itemNumber: number; itemSymbol: string; handlers: Record>; log: (txt: string, token?: Token) => void; debug: (...args: any[]) => void; } export declare class ContextStash { private ctxStash; private currentCtx; readonly output: SmartOutput; constructor(handlers: Record>); stash(reason: string): number; unstash(reason: string): void; rollback(rollbackPos: number, reason: string): void; get current(): SerializerContext; } export declare function serializeInlineTokens(ctx: ContextStash, tokenSource: TokenSource, tokens: Token[]): void; export type TokenHandler = (token: Token, ctx: ContextStash, tokenSource: TokenSource) => boolean | void; export interface MarkdownSerializerConfig { debug?: (...args: any[]) => void; htmlListItems?: boolean; listMargins?: Record; } export declare class MarkdownSerializer { private ctx; constructor(config?: MarkdownSerializerConfig); private get endsWithEmptyLine(); serialize(tokens: Token[]): SmartOutput; } export {}; //# sourceMappingURL=MarkdownSerializer.d.ts.map