/**
 * ProjectMarkers — 统一项目探测标准（核心库 & VSCode 扩展共用）
 *
 * 所有模块判断「当前目录是否是 AutoSnippet 项目」时，都应该使用此模块提供的常量和函数，
 * 避免各处硬编码不同的标记目录名导致探测标准不一致。
 *
 * 探测优先级：
 *   1. 存在 AutoSnippet.boxspec.json 的一级子目录 → 知识库根目录
 *   2. 存在 AutoSnippet/ 目录 → 默认知识库根目录
 *   3. 存在 .autosnippet/ 目录 → 运行时目录（至少说明曾初始化过）
 *
 * 子仓库（Sub-Repo）：
 *   子仓库指通过独立 git 管理的知识数据目录，默认为 `AutoSnippet/recipes/`。
 *   可通过 `.autosnippet/config.json` 中的 `core.subRepoDir` 自定义。
 *   支持形式：git submodule、git subtree、独立 git init、或无 git（跳过权限探测）。
 */
/** 默认知识库顶级目录名 */
export declare const DEFAULT_KNOWLEDGE_BASE_DIR = "AutoSnippet";
/** 默认子仓库相对路径（相对于 projectRoot） */
export declare const DEFAULT_SUB_REPO_DIR = "AutoSnippet/recipes";
/** 运行时配置目录名 */
export declare const RUNTIME_DIR = ".autosnippet";
/** Boxspec 文件名 — 知识库目录标记 */
export declare const SPEC_FILENAME = "AutoSnippet.boxspec.json";
/**
 * 项目标记目录列表（任一存在即视为 AutoSnippet 项目）
 * 顺序即优先级：AutoSnippet/ > .autosnippet/
 */
export declare const PROJECT_MARKER_DIRS: readonly ["AutoSnippet", ".autosnippet"];
/**
 * 判断一个目录是否是 AutoSnippet 项目
 * 条件：存在 `AutoSnippet/` 或 `.autosnippet/` 子目录
 */
export declare function isAutoSnippetProject(folderPath: string): boolean;
/**
 * 探测知识库目录名
 * 优先查找含 boxspec.json 的一级子目录，fallback 到默认值 'AutoSnippet'
 */
export declare function detectKnowledgeBaseDir(projectRoot: string): string;
/**
 * 从 `.autosnippet/config.json` 读取子仓库路径配置
 * @returns 子仓库相对路径（相对于 projectRoot），如 'AutoSnippet/recipes'
 */
export declare function readSubRepoDirFromConfig(projectRoot: string): string | null;
/**
 * 从 `.autosnippet/config.json` 读取子仓库远程 URL 配置
 * @returns 远程仓库 URL，如 'https://github.com/team/recipes.git'；未配置则返回 null
 */
export declare function readSubRepoUrlFromConfig(projectRoot: string): string | null;
/**
 * 解析子仓库的绝对路径
 *
 * 优先级：
 *   1. 传入的 explicitPath 参数
 *   2. `.autosnippet/config.json` 中 `core.subRepoDir`
 *   3. 默认 `AutoSnippet/recipes`
 *
 * @param projectRoot 项目根目录
 * @param explicitPath 显式指定的子仓库路径（绝对或相对于 projectRoot）
 * @returns 子仓库绝对路径
 */
export declare function resolveSubRepoPath(projectRoot: string, explicitPath?: string): string;
/** 检测路径是否为 git 仓库（含 submodule） */
export declare function isGitRepo(dirPath: string): boolean;
