import type { ResolvedPos, Schema } from '@atlaskit/editor-prosemirror/model';
import { Node } from '@atlaskit/editor-prosemirror/model';
import type { EditorState, ReadonlyTransaction, Transaction } from '@atlaskit/editor-prosemirror/state';
import type { DispatchAnalyticsEvent } from '../analytics';
import type { ProviderFactory } from '../provider-factory';
import type { ReplaceRawValue, Transformer } from '../types';
type ChangedFn = (node: Node, pos: number, parent: Node | null, index: number) => boolean | void;
export declare const getStepRange: (transaction: Transaction | ReadonlyTransaction) => {
    from: number;
    to: number;
} | null;
export declare function hasDocAsParent($anchor: ResolvedPos): boolean;
/**
 * Checks if a node looks like an empty document
 */
export declare function isEmptyDocument(node: Node): boolean;
export declare function bracketTyped(state: EditorState): boolean;
export declare function nodesBetweenChanged(tr: Transaction | ReadonlyTransaction, f: ChangedFn, startPos?: number): void;
export declare function processRawValue(schema: Schema, value?: ReplaceRawValue, providerFactory?: ProviderFactory, sanitizePrivateContent?: boolean, contentTransformer?: Transformer<string>, dispatchAnalyticsEvent?: DispatchAnalyticsEvent): Node | undefined;
/**
 * Returns false if node contains only empty inline nodes and hardBreaks.
 */
export declare function hasVisibleContent(node: Node): boolean;
export declare const isSelectionEndOfParagraph: (state: EditorState) => boolean;
export declare function getChangedNodes(tr: ReadonlyTransaction | Transaction): {
    node: Node;
    pos: number;
}[];
export {};
