import { MarkdownSerializer as PMMarkdownSerializer, MarkdownSerializerState as PMMarkdownSerializerState, type NodeSerializerSpec, type MarkSerializerSpec } from '@atlaskit/editor-prosemirror/markdown'; import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model'; /** * Look for series of backticks in a string, find length of the longest one, then * generate a backtick chain of a length longer by one. This is the only proven way * to escape backticks inside code block and inline code (for python-markdown) */ export declare const generateOuterBacktickChain: (text: string, minLength?: number) => string; export declare class MarkdownSerializerState extends PMMarkdownSerializerState { context: { insideTable: boolean; }; captionForMedia: string; nodes: NodeSerializerSpec; marks: { [mark: string]: MarkSerializerSpec; }; /** * Defines the internal variables used in the markdown serializer * @see https://github.com/ProseMirror/prosemirror-markdown/blob/master/src/to_markdown.ts#L172 */ delim: string; out: string; closed: Node | null; constructor(nodes: NodeSerializerSpec, marks: { [mark: string]: MarkSerializerSpec; }); /** * Defines the internal atBlank method used in the markdown serializer * @see https://github.com/ProseMirror/prosemirror-markdown/blob/master/src/to_markdown.ts#L241 */ atBlank(): boolean; /** * Defines the internal flushClose method used in the markdown serializer * @see https://github.com/ProseMirror/prosemirror-markdown/blob/master/src/to_markdown.ts#L202 */ flushClose(size?: number): void; renderContent(parent: PMNode): void; /** * This method override will properly escape backticks in text nodes with "code" mark enabled. * Bitbucket uses python-markdown which does not honor escaped backtick escape sequences \` * inside a backtick fence. * * @see MarkdownSerializerState.renderInline() */ renderInline(parent: PMNode): void; } export declare class MarkdownSerializer extends PMMarkdownSerializer { serialize(content: PMNode): string; } export declare const nodes: { blockquote: (state: MarkdownSerializerState, node: PMNode) => void; bulletList: (state: MarkdownSerializerState, node: PMNode) => void; caption: (state: MarkdownSerializerState, node: PMNode, parent: PMNode) => void; codeBlock: (state: MarkdownSerializerState, node: PMNode) => void; emoji: (state: MarkdownSerializerState, node: PMNode) => void; empty_line: (state: MarkdownSerializerState, node: PMNode) => void; extension: (state: MarkdownSerializerState, node: PMNode) => void; hardBreak: (state: MarkdownSerializerState) => void; heading: (state: MarkdownSerializerState, node: PMNode) => void; image: (state: MarkdownSerializerState, node: PMNode) => void; inlineCard: (state: MarkdownSerializerState, node: PMNode) => void; listItem: (state: MarkdownSerializerState, node: PMNode, parent: PMNode, index: number) => void; media: (state: MarkdownSerializerState, node: PMNode, parent: PMNode) => void; mediaGroup: (state: MarkdownSerializerState, node: PMNode) => void; mediaSingle: (state: MarkdownSerializerState, node: PMNode, parent: PMNode) => void; mention: (state: MarkdownSerializerState, node: PMNode, parent: PMNode, index: number) => void; orderedList: (state: MarkdownSerializerState, node: PMNode) => void; paragraph: (state: MarkdownSerializerState, node: PMNode) => void; rule: (state: MarkdownSerializerState, node: PMNode) => void; table: (state: MarkdownSerializerState, node: PMNode) => void; tableCell: (state: MarkdownSerializerState, node: PMNode) => void; tableHeader: (state: MarkdownSerializerState, node: PMNode) => void; tableRow: (state: MarkdownSerializerState, node: PMNode) => void; text: (state: MarkdownSerializerState, node: PMNode, parent: PMNode, index: number) => void; }; export declare const marks: { em: { open: string; close: string; mixable: boolean; expelEnclosingWhitespace: boolean; }; strong: { open: string; close: string; mixable: boolean; expelEnclosingWhitespace: boolean; }; strike: { open: string; close: string; mixable: boolean; expelEnclosingWhitespace: boolean; }; link: { open: string; close(_state: MarkdownSerializerState, mark: any): string; }; code: { open: string; close: string; }; };