import type { Node as ProseMirrorNode } from '@tiptap/pm/model'; import type { ACTION_BUTTON_TYPE, AUDIO_TYPE, BLOCKQUOTE, BULLET_LIST_TYPE, CODE_BLOCK_TYPE, COLLAPSIBLE_LIST_TYPE, DIVIDER_TYPE, DocumentStyle, EMBED_TYPE, EXTERNAL, FILE_UPLOAD_TYPE, GALLERY_TYPE, GIPHY_TYPE, HEADER_BLOCK, HTML_TYPE, IMAGE_TYPE, LINK_BUTTON_TYPE, LINK_PREVIEW_TYPE, NUMBERED_LIST_TYPE, POLL_TYPE, RICOS_ANCHOR_TYPE, RICOS_COLLAPSIBLE_LIST_TYPE, RICOS_DIVIDER_TYPE, RICOS_FILE_TYPE, RICOS_FONT_SIZE_TYPE, RICOS_GALLERY_TYPE, RICOS_GIPHY_TYPE, RICOS_HTML_TYPE, RICOS_IMAGE_TYPE, RICOS_INDENT_TYPE, RICOS_LINE_SPACING_TYPE, RICOS_LINK_TYPE, RICOS_MENTION_TYPE, RICOS_POLL_TYPE, RICOS_TABLE_TYPE, RICOS_TEXT_COLOR_TYPE, RICOS_TEXT_HIGHLIGHT_TYPE, RICOS_VIDEO_TYPE, TABLE_TYPE, UNSTYLED, VERTICAL_EMBED_TYPE, VIDEO_TYPE } from 'ricos-content'; import type { ButtonData, ColorData, DividerData, FileData, GalleryData, GIFData, HTMLData, ImageData, Link, LinkData, LinkPreviewData, PollData, RichContent, VideoData } from 'ricos-schema'; import type { FocusPosition, InlineStyle, TextAlignment } from './commonTypes'; import type { MentionData } from './pluginTypes'; export type ColorType = typeof RICOS_TEXT_COLOR_TYPE | typeof RICOS_TEXT_HIGHLIGHT_TYPE; type PluginsList = string[]; type BlockKey = string; export type TextBlockType = typeof UNSTYLED | typeof NUMBERED_LIST_TYPE | typeof BULLET_LIST_TYPE | typeof CODE_BLOCK_TYPE | typeof BLOCKQUOTE | typeof HEADER_BLOCK.ONE | typeof HEADER_BLOCK.TWO | typeof HEADER_BLOCK.THREE | typeof HEADER_BLOCK.FOUR | typeof HEADER_BLOCK.FIVE | typeof HEADER_BLOCK.SIX; export type HeadingType = Omit; type Selection = { isFocused?: boolean; isCollapsed?: boolean; startKey?: string; endKey?: string; textContent?: string; selectedNodes: ProseMirrorNode[]; }; type draftSelection = { anchorKey?: string; anchorOffset?: number; focusKey?: string; focusOffset?: number; isBackward?: boolean; hasFocus?: boolean; }; export interface PluginsDataMap { [RICOS_DIVIDER_TYPE]?: DividerData; [DIVIDER_TYPE]?: any; [RICOS_GIPHY_TYPE]?: GIFData; [GIPHY_TYPE]?: any; [RICOS_HTML_TYPE]?: HTMLData; [HTML_TYPE]?: any; [RICOS_GALLERY_TYPE]?: GalleryData; [GALLERY_TYPE]?: any; [RICOS_POLL_TYPE]?: PollData; [POLL_TYPE]?: any; [RICOS_VIDEO_TYPE]?: VideoData; [VIDEO_TYPE]?: any; [RICOS_FILE_TYPE]?: FileData; [FILE_UPLOAD_TYPE]?: any; [RICOS_IMAGE_TYPE]?: ImageData; [IMAGE_TYPE]?: any; [COLLAPSIBLE_LIST_TYPE]?: any; [RICOS_COLLAPSIBLE_LIST_TYPE]?: any; [CODE_BLOCK_TYPE]?: any; [EXTERNAL]?: any; [VERTICAL_EMBED_TYPE]?: any; [EMBED_TYPE]?: any; [AUDIO_TYPE]?: any; [LINK_BUTTON_TYPE]?: ButtonData; [ACTION_BUTTON_TYPE]?: ButtonData; [LINK_PREVIEW_TYPE]?: LinkPreviewData; [TABLE_TYPE]?: any; [RICOS_TABLE_TYPE]?: any; } export declare const CUSTOM_LINK = "custom-link"; export interface DecorationsDataMap { [RICOS_LINK_TYPE]?: LinkData['link']; [RICOS_ANCHOR_TYPE]?: { anchor: string; defaultName?: string; }; [CUSTOM_LINK]?: LinkData; [RICOS_MENTION_TYPE]?: MentionData; [RICOS_TEXT_COLOR_TYPE]?: { color?: ColorData['foreground']; }; [RICOS_TEXT_HIGHLIGHT_TYPE]?: { color?: ColorData['background']; }; [RICOS_INDENT_TYPE]?: number; [RICOS_LINE_SPACING_TYPE]?: any; [RICOS_FONT_SIZE_TYPE]?: { fontSize?: string; }; } export interface EditorCommands { getContent: () => RichContent; getSelection: () => Selection; getAnchorableBlocks: () => { anchorableBlocks: any[]; pluginsIncluded: string[]; }; getDocumentStyle: () => DocumentStyle | undefined; getColor: (colorType: ColorType) => string | undefined; getFontSize: () => string | undefined; getTextAlignment: () => TextAlignment; getAnchorBlockInlineStyles: () => Record; getInlineStylesInSelection: () => Record; hasInlineStyle: (style: InlineStyle) => boolean; isBlockTypeSelected: (type: TextBlockType) => boolean; isUndoStackEmpty: () => boolean; isRedoStackEmpty: () => boolean; hasLinkInSelection: (options?: { inclusive?: boolean; }) => boolean; getLinkDataInSelection: (options?: { inclusive?: boolean; }) => Link | undefined; getSelectedData: () => any; getPluginsList: (settings?: { isRicosSchema?: boolean; }) => PluginsList; scrollToBlock: (blockKey: BlockKey) => void; isBlockInContent: (blockKey: BlockKey) => boolean; toggleBlockOverlay: (blockKey: BlockKey) => void; getBlockSpacing: () => any; saveEditorState: () => void; loadEditorState: () => void; saveSelectionState: () => void; loadSelectionState: () => void; insertDecoration: (type: K, data?: DecorationsDataMap[K], settings?: { isRicosSchema?: boolean; shouldFocus?: boolean; }) => void; triggerDecoration: >(type: K) => void; deleteDecoration: >(type: K) => void; insertBlock: (type: K, data?: PluginsDataMap[K], settings?: { isRicosSchema?: boolean; }) => string; insertBlockWithBlankLines: (type: K, data?: PluginsDataMap[K], settings?: { isRicosSchema?: boolean; updateSelection?: boolean; }) => string; setBlock: (blockKey: BlockKey, type: K, data?: PluginsDataMap[K], settings?: { isRicosSchema?: boolean; }) => void; updateBlock?: (blockKey: string, pluginType: K, data: PluginsDataMap[K]) => boolean; deleteBlock: (blockKey: BlockKey) => void; undo: () => void; redo: () => void; toggleInlineStyle: (inlineStyle: InlineStyle) => void; setBlockType: (type: TextBlockType) => void; setTextAlignment: (textAlignment: TextAlignment) => void; _setSelection: (blockKey: BlockKey, selection: draftSelection) => void; resetDocumentStyleByNodeType: (type: any) => void; updateDocumentStyle: (documentStyle: DocumentStyle) => void; clearSelectedBlocksInlineStyles: (exclude?: string[]) => void; getWiredFontStyles: () => Record | undefined; isAtomicBlockInSelection: () => boolean; isTextBlockInSelection: () => boolean; getAnchorBlockType: () => string; getAllBlocksKeys: () => string[]; focus: (focusPosition?: FocusPosition) => void; getBlockComponentData: (blockKey: string) => PluginsDataMap[K] | Record; insertText: (text: string) => void; getCurrentHeading: () => HeadingType; softNewLine: () => void; clearEditorContent: (triggerUpdate: boolean) => void; } export {}; //# sourceMappingURL=editorCommandsType.d.ts.map