import type { Node } from '@atlaskit/editor-prosemirror/model';
import type { EditorState, ReadonlyTransaction, Transaction } from '@atlaskit/editor-prosemirror/state';
type ChangedFn = (node: Node, pos: number, parent: Node | null, index: number) => boolean | void;
export declare function bracketTyped(state: EditorState): boolean;
export declare function nodesBetweenChanged(tr: Transaction | ReadonlyTransaction, f: ChangedFn, startPos?: number): void;
export declare function getChangedNodes(tr: ReadonlyTransaction | Transaction): {
    node: Node;
    pos: number;
}[];
export declare const isReplaceDocOperation: (transactions: readonly Transaction[], oldState: EditorState) => boolean;
/**
 * Compares two ProseMirror documents for equality, ignoring attributes
 * which don't affect the document structure.
 *
 * This is almost a copy of the .eq() PM function - tweaked to ignore attrs
 *
 * @param doc1 PMNode
 * @param doc2 PMNode
 * @param attributesToIgnore Specific array of attribute keys to ignore - defaults to ignoring all
 * @param opts.ignoreMarkOrder If mark order should be ignored to still be equal (e.g. reversed annotation marks). Defaults to true.
 * @returns boolean
 */
export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node, attributesToIgnore?: string[], opts?: {
    ignoreMarkOrder?: boolean;
}): boolean;
export { getStepRange } from './getStepRange';
export { hasDocAsParent } from './hasDocAsParent';
export { isEmptyDocument } from './isEmptyDocument';
export { hasVisibleContent } from './hasVisibleContent';
export { isSelectionEndOfParagraph } from './isSelectionEndOfParagraph';
