import type { NodeType } from '@atlaskit/editor-prosemirror/model'; import { Fragment, Node } from '@atlaskit/editor-prosemirror/model'; import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state'; export type InsertableContent = Node | Fragment; export declare enum LookDirection { Before = "before", After = "after" } export declare const normaliseNestedLayout: ({ selection, doc }: EditorState | Transaction, node: Node) => Node; export declare const safeInsert: (content: InsertableContent, position?: number) => (tr: Transaction) => Transaction | null; /** * Method extracted from typeahead plugin to be shared with the element browser on handling element insertion. */ export declare const insertSelectedItem: (maybeNode?: Node | Object | string | Fragment, opts?: { selectInlineNode?: boolean; }) => (state: EditorState, tr: Transaction, start: number) => Transaction; /** * ED-14584: Util to check if the destination node is a paragraph & the * content being inserted is a valid child of the grandparent node. * In this case, the destination node should split */ export declare const shouldSplitSelectedNodeOnNodeInsertion: ({ parentNodeType, grandParentNodeType, content, }: { content: Node; grandParentNodeType: NodeType; parentNodeType: NodeType; }) => boolean; /** * Check if the current selection contains any nodes that are not permitted * as codeBlock child nodes. Note that this allows paragraphs and inline nodes * as we extract their text content. */ export declare function contentAllowedInCodeBlock(state: EditorState): boolean; /** * Check if a fragment contains a particular node by iterating through all the nodes in the fragment. * If the node type is found will stop looking and return true. * If the node type is not found, it will return false. */ export declare function fragmentContainsNodeType(fragment: Fragment, nodeType: NodeType): boolean;