import type { EditorState, Selection, Transaction } from '@atlaskit/editor-prosemirror/state';
import type { DecorationSet } from '@atlaskit/editor-prosemirror/view';
import type { LongPressSelectionPluginOptions } from '../types';
export declare enum RelativeSelectionPos {
    Before = "Before",
    Start = "Start",
    Inside = "Inside",
    End = "End"
}
export interface SelectionPluginState {
    /** Selected node class decorations */
    decorationSet: DecorationSet;
    /** Selection the decorations were built for */
    selection: Selection;
    /**
     * Relative position of selection to either its parent node or, if a NodeSelection, its own node
     * Used to manage where the selection should go when using arrow keys
     */
    selectionRelativeToNode?: RelativeSelectionPos;
}
export type SetSelectionRelativeToNode = (props: {
    selection?: Selection | null;
    selectionRelativeToNode?: RelativeSelectionPos;
}) => (state: EditorState) => Transaction;
export type EditorSelectionAPI = {
    getSelectionPluginState: (state: EditorState) => SelectionPluginState;
    setSelectionRelativeToNode: SetSelectionRelativeToNode;
};
export type SelectionPluginOptions = LongPressSelectionPluginOptions;
export type SelectionSharedState = {
    selection?: Selection | undefined;
    selectionRelativeToNode?: RelativeSelectionPos | undefined;
} | undefined;
