import type { MarkType, Node, NodeType, Slice } from '@atlaskit/editor-prosemirror/model';
import type { EditorState, Selection, Transaction } from '@atlaskit/editor-prosemirror/state';
import { TextSelection } from '@atlaskit/editor-prosemirror/state';
import type { Step } from '@atlaskit/editor-prosemirror/transform';
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
/**
 * Checks if node is an empty paragraph.
 */
export declare function isEmptyParagraph(node?: Node | null): boolean;
export declare const stepHasSlice: (step: Step) => step is Step & {
    from: number;
    slice: Slice;
    to: number;
};
/**
 * Checks whether a given step is adding nodes of given nodeTypes
 *
 * @param step Step to check
 * @param nodeTypes NodeTypes being added
 */
export declare function stepAddsOneOf(step: Step, nodeTypes: Set<NodeType>): boolean;
export declare const extractSliceFromStep: (step: Step) => Slice | null;
export declare const isTextSelection: (selection: Selection) => selection is TextSelection;
export declare const isElementInTableCell: (element: HTMLElement | null) => HTMLElement | null;
export declare const isLastItemMediaGroup: (node: Node) => boolean;
export declare const setNodeSelection: (view: EditorView, pos: number) => void;
export declare function setTextSelection(view: EditorView, anchor: number, head?: number): void;
export declare function setAllSelection(view: EditorView): void;
export declare function setCellSelection(view: EditorView, anchor: number, head?: number): void;
export declare function nonNullable<T>(value: T): value is NonNullable<T>;
export declare const isValidPosition: (pos: number | undefined, state: EditorState) => boolean;
export declare const isInLayoutColumn: (state: EditorState) => boolean;
export declare function filterChildrenBetween(doc: Node, from: number, to: number, predicate: (node: Node, pos: number, parent: Node | null) => boolean | undefined): {
    node: Node;
    pos: number;
}[];
export declare const removeBlockMarks: (state: EditorState, marks: Array<MarkType | undefined>) => Transaction | undefined;
