/**
 * YMLParser — Keepwork 页面数据专用 YAML 序列化/反序列化工具
 *
 * 实现了一个轻量级的 YAML 子集解析器，用于读写存储在 PersonalPage 中的结构化数据。
 * 支持 front-matter 格式（`---` 分隔的 YAML 头 + 正文），常用于页面元数据 + 内容分离。
 *
 * 注意：这不是一个完整的 YAML 实现；设计目标是覆盖 Keepwork 页面数据的实际存储格式，
 * 保持与现有 Lua 端（KeepworkReposApi）序列化行为的兼容。
 */
/** objectToYaml 的选项 */
export interface ObjectToYamlOptions {
    /** 是否按字母顺序排序键，默认 true */
    isSortKeys?: boolean;
    /** 是否使用 front-matter 格式（将 content 键序列化为 --- 块后的正文），默认 false */
    useFrontMatter?: boolean;
}
/** yamlToObject 的选项 */
export interface YamlToObjectOptions {
    /** 是否解析 front-matter 格式，默认 false */
    useFrontMatter?: boolean;
}
/** 可序列化的 YAML 值类型（递归） */
export type YamlValue = string | number | boolean | null | YamlValue[] | {
    [key: string]: YamlValue;
};
declare class YMLParser {
    /**
     * 将 JavaScript 对象序列化为 YAML 字符串。
     *
     * 当 `useFrontMatter=true` 且对象含有 `content` 键时，
     * 输出格式为：
     * ```
     * ---
     * key1: value1
     * ---
     * <content 字符串>
     * ```
     *
     * @param obj           - 要序列化的对象
     * @param isSortKeys    - 是否按字母排序键（默认 true）
     * @param useFrontMatter - 是否使用 front-matter 格式（默认 false）
     * @returns 序列化后的 YAML 字符串
     */
    static objectToYaml(obj: Record<string, YamlValue>, isSortKeys?: boolean, useFrontMatter?: boolean): string;
    /**
     * 将 YAML 字符串反序列化为 JavaScript 对象。
     *
     * 解析顺序：
     * 1. 若启用 `useFrontMatter` 且以 `---` 开头，先尝试 front-matter 解析
     * 2. 回退尝试 JSON.parse（兼容旧版 JSON 存储格式）
     * 3. 最终使用自有 YAML 行解析器
     *
     * @param yamlString    - YAML/JSON 字符串
     * @param useFrontMatter - 是否解析 front-matter 格式（默认 false）
     * @returns 解析后的对象，失败时返回空对象 `{}`
     */
    static yamlToObject(yamlString: string, useFrontMatter?: boolean): Record<string, YamlValue> | YamlValue[];
    /**
     * 递归解析 YAML 行数组，返回结构化对象。
     * 支持嵌套对象、数组、标量值，兼容 YAML 缩进层级。
     *
     * @param lines - 预过滤的 YAML 行（已去除空行和注释行）
     * @returns 解析结果对象或数组
     */
    static parseYamlLines(lines: string[]): Record<string, YamlValue> | YamlValue[];
    /**
     * 从 YAML 行数组中解析指定缩进层级的数组元素。
     *
     * @param lines      - YAML 行数组
     * @param baseIndent - 数组元素所在的缩进列数
     * @returns 解析出的数组
     */
    static parseArrayItems(lines: string[], baseIndent: number): YamlValue[];
    /**
     * 将 YAML 标量字符串解析为对应的 JS 原生类型。
     *
     * 支持：null/~、boolean、整数、浮点数、单引号/双引号字符串、
     * 内联 JSON 对象/数组，其余回退为字符串。
     *
     * @param value - 原始 YAML 标量字符串（已 trim）
     * @returns 解析后的值
     */
    static parseYamlValue(value: string): YamlValue;
    /**
     * 解析 front-matter 格式字符串：`---\n<yaml>\n---\n<content>`
     *
     * 解析成功后，YAML 头部字段与 `content`（正文字符串）合并到同一对象。
     * 若格式不匹配（缺少第二个 `---`）则返回 null。
     *
     * @param str - 以 `---` 开头的字符串
     * @returns 包含 content 键的解析对象，或 null（格式不符）
     */
    static _parseFrontMatter(str: string): Record<string, YamlValue> | null;
}
export default YMLParser;
//# sourceMappingURL=YMLParser.d.ts.map