/**
 * Frontmatter（文档头 YAML）命令。
 * 在文档顶部插入或替换 `---\n...\n---` 块；变量引用可从已有 frontmatter 键下拉选取。
 */
import type { EditorView } from "@codemirror/view";
import { Command, type CommandContext } from "../../../editor/commands/Command";
import type { DialogCallbacks, DialogCapableCommand } from "../../../editor/commands/DialogCommand";
import type { DialogType } from "../../../editor/commands/dialogTypes";
import type { ParserStore } from "../../../transformer/core/ParserStore";
/** `frontmatter` 弹窗提交结果。 */
export interface FrontmatterDialogResult {
    yaml: string;
}
/** `frontmatterVar` 弹窗提交结果。 */
export interface FrontmatterVarDialogResult {
    path: string;
}
/**
 * 校验 YAML 字符串，无效时返回错误文案。
 * @param yaml - 待解析的 YAML 文本
 * @returns YAML 有效时返回 null，否则返回错误信息
 */
export declare function validateFrontmatterYaml(yaml: string): string | null;
/**
 * 包装为 frontmatter 围栏 Markdown。
 * @param yaml - 要包裹的 YAML 文本
 * @returns 带首尾围栏和空行的 frontmatter Markdown
 */
export declare function frontmatterMarkdown(yaml: string): string;
/**
 * 将 frontmatter 对象展平为点分路径列表（供 [[path]] 引用）。
 * @param obj - 待遍历的 frontmatter 对象
 * @param prefix - 当前递归层级的路径前缀
 * @returns 排序后的叶子字段路径列表
 */
export declare function flattenFrontmatterKeys(obj: Record<string, unknown>, prefix?: string): string[];
/**
 * 从 ParserStore 读取 frontmatter 变量路径。
 * @param store - 最近一次渲染生成的可选 ParserStore
 * @returns 可用于变量引用的点分字段路径
 */
export declare function collectFrontmatterVars(store: ParserStore | null | undefined): string[];
/**
 * `frontmatter` — 打开 YAML 编辑器；若文档已有 frontmatter 则预填并替换。
 */
export declare class FrontmatterCommand implements Command, DialogCapableCommand {
    readonly dialogType: DialogType;
    renderDialog: (host: HTMLElement, props: Record<string, unknown>, callbacks: DialogCallbacks<FrontmatterDialogResult>) => () => void;
    /**
     * 打开 YAML 表单并替换或插入文档头。
     * @param view - 要修改的 CodeMirror 编辑器实例
     * @param _p - 未使用的命令参数
     * @param ctx - 提供事件总线的命令上下文
     * @returns 用户取消或缺少事件总线时返回 false
     */
    execute(view: EditorView, _p: unknown, ctx: CommandContext): Promise<boolean>;
}
/**
 * `frontmatterVar` — 插入 frontmatter 变量引用 `[[path]]`，可选取已有键。
 */
export declare class FrontmatterVarCommand implements Command, DialogCapableCommand {
    readonly dialogType: DialogType;
    renderDialog: (host: HTMLElement, props: Record<string, unknown>, callbacks: DialogCallbacks<FrontmatterVarDialogResult>) => () => void;
    /**
     * 从 AST 收集变量路径，打开表单并插入变量引用。
     * @param view - 要修改的 CodeMirror 编辑器实例
     * @param _p - 未使用的命令参数
     * @param ctx - 提供事件总线和可选 ParserStore 的命令上下文
     * @returns 用户取消或缺少事件总线时返回 false
     */
    execute(view: EditorView, _p: unknown, ctx: CommandContext): Promise<boolean>;
}
/** `frontmatter` 命令实例 */
export declare const frontmatterCommand: FrontmatterCommand;
/** `frontmatterVar` 命令实例 */
export declare const frontmatterVarCommand: FrontmatterVarCommand;
//# sourceMappingURL=FrontmatterCommand.d.ts.map