/**
 * 脚注命令组。
 * 支持仅引用、仅定义、引用+定义三种模式；定义内容追加到文档末尾。
 */
import type { EditorView } from "@codemirror/view";
import { FormDialog } from "../../../editor/dialog/FormDialog.js";
import { Command, type CommandContext } from "../../../editor/commands/Command";
import type { DialogCallbacks, DialogCapableCommand } from "../../../editor/commands/DialogCommand";
import type { DialogType } from "../../../editor/commands/dialogTypes";
/** `footnote` 弹窗提交结果。 */
export interface FootnoteDialogResult {
    id: string;
    content?: string;
    mode: "ref" | "def" | "both";
}
declare class FootnoteCommandImpl implements Command, DialogCapableCommand {
    readonly dialogType: DialogType;
    private readonly dialog;
    /**
     * 创建绑定表单的脚注命令。
     * @param dialogType - 要打开的弹窗类型
     * @param dialog - 负责收集脚注数据的表单
     */
    constructor(dialogType: DialogType, dialog: FormDialog<FootnoteDialogResult>);
    renderDialog: (host: HTMLElement, props: Record<string, unknown>, callbacks: DialogCallbacks<FootnoteDialogResult>) => () => void;
    /**
     * 从最近渲染的 AST 收集定义，打开表单并应用脚注。
     * @param view - 要修改的 CodeMirror 编辑器实例
     * @param _p - 未使用的命令参数
     * @param ctx - 提供事件总线和可选 ParserStore 的命令上下文
     * @returns 用户取消或缺少事件总线时返回 false
     */
    execute(view: EditorView, _p: unknown, ctx: CommandContext): Promise<boolean>;
}
/** `footnoteRef` — 仅插入引用 `[^id]` */
export declare const footnoteRefCommand: FootnoteCommandImpl;
/** `footnoteDef` — 仅在文末插入定义 `[^id]: content` */
export declare const footnoteDefCommand: FootnoteCommandImpl;
/** `footnoteBoth` — 同时插入引用与定义 */
export declare const footnoteBothCommand: FootnoteCommandImpl;
export {};
//# sourceMappingURL=FootnoteCommand.d.ts.map