import { Mark, type MarkType, type Node } from '@atlaskit/editor-prosemirror/model';
import type { EditorState, SelectionRange } from '@atlaskit/editor-prosemirror/state';
/**
 * Determine if a mark of a specific type exists anywhere in the selection.
 */
export declare const anyMarkActive: (state: EditorState, markType: Mark | MarkType) => boolean;
type MarkMap = Map<Mark | MarkType, boolean>;
/**
 * Check if a selection contains any of the specifiged marks. The whole selection
 * must have the mark for it to be considered active.
 * @param state The editor state
 * @param markTypes The marks to check for
 * @returns A map indicating which marks are present in the selection
 * @example
 * const markTypes = editorState.schema.marks;
 * const activeMarks = wholeSelectionHasMarks(editorState, [markTypes.strong, markTypes.em, markTypes.etc]);
 */
export declare const wholeSelectionHasMarks: (state: EditorState, markTypes: (MarkType | Mark)[]) => MarkMap;
export declare const isMarkAllowedInRange: (doc: Node, ranges: readonly SelectionRange[], type: MarkType) => boolean;
export declare const isMarkExcluded: (type: MarkType, marks?: readonly Mark[] | null) => boolean;
export {};
