import { StateField } from "@codemirror/state";
import { EditorView, ViewPlugin, ViewUpdate } from "@codemirror/view";
export interface PasteState {
    from: number;
    to: number;
    plainText: string;
    markdownText: string;
    active: "plain" | "markdown";
}
export declare const setPasteState: import("@codemirror/state").StateEffectType<PasteState | null>;
export declare const pasteStateField: StateField<PasteState | null>;
export declare const pasteTooltipPlugin: ViewPlugin<{
    dom: HTMLElement;
    btnPlain: HTMLButtonElement;
    btnMd: HTMLButtonElement;
    view: EditorView;
    /**
     * 将刚粘贴的内容切换为原文或转换后的 Markdown。
     *
     * @param e 触发切换的鼠标事件。
     * @param targetMode 要应用的粘贴文本格式。
     */
    handleSwitch(e: MouseEvent, targetMode: "plain" | "markdown"): void;
    /**
     * 在粘贴状态变化时同步浮层显示。
     *
     * @param update CodeMirror 视图更新信息。
     */
    update(update: ViewUpdate): void;
    /**
     * 根据当前粘贴状态显示、隐藏并标记格式切换按钮。
     *
     * @param state 当前粘贴状态；为空时隐藏浮层。
     */
    syncUI(state: PasteState | null): void;
    /** 从编辑器 DOM 中移除粘贴格式切换浮层。 */
    destroy(): void;
}, undefined>;
//# sourceMappingURL=pasteTooltip.d.ts.map