import { BaseSelection, Editor, Node, Range } from 'slate';
import { MarkdownEditorProps } from '../../BaseMarkdownEditor';
import type { MarkdownEditorPlugin } from '../../plugin';
import type { EditorStore } from '../store';
/**
 * 处理粘贴的 Slate Markdown 片段
 */
export declare const handleSlateMarkdownFragment: (editor: Editor, clipboardData: DataTransfer, currentTextSelection: BaseSelection) => boolean;
/**
 * 处理粘贴的 HTML 内容
 */
export declare const handleHtmlPaste: (editor: Editor, clipboardData: DataTransfer, editorProps: MarkdownEditorProps) => Promise<boolean>;
/**
 * 处理粘贴的文件
 */
export declare const handleFilesPaste: (editor: Editor, clipboardData: DataTransfer, editorProps: MarkdownEditorProps) => Promise<boolean>;
/**
 * 处理特殊文本格式（media:// 和 attach:// 链接）
 */
export declare const handleSpecialTextPaste: (editor: Editor, text: string, selection: BaseSelection) => boolean;
/**
 * 处理 HTTP 链接
 */
export declare const handleHttpLinkPaste: (editor: Editor, text: string, selection: BaseSelection, store: Pick<EditorStore, 'insertLink'>) => boolean;
/**
 * 处理普通文本粘贴
 */
export declare const handlePlainTextPaste: (editor: Editor, text: string, selection: BaseSelection, plugins: MarkdownEditorPlugin[], allowedTypes?: string[]) => Promise<boolean>;
/**
 * 检查是否需要直接插入文本（在特定节点类型中）
 */
export declare const shouldInsertTextDirectly: (editor: Editor, selection: BaseSelection) => boolean;
/**
 * 处理标签节点的粘贴
 */
export declare const handleTagNodePaste: (editor: Editor, currentTextSelection: Range, clipboardData: DataTransfer, curNode: Node & {
    tag?: boolean | null;
}) => boolean;
