import type { NoteKind } from '../types.js'; /** Singleton kinds get fixed filenames (no ID prefix) */ declare const SINGLETON_KINDS: Set; /** Maps kind → plural directory name */ declare const KIND_DIR_MAP: Record; export declare function getGlobalHomeNoteBasename(): string; export declare function getGlobalHomeNotePath(docsPath: string): string; export declare function getProjectFolderNoteBasename(project: string): string; export declare function getProjectFolderNotePath(docsPath: string, project: string): string; export declare function getProjectsFolderNoteBasename(): string; export declare function getProjectsFolderNotePath(docsPath: string): string; export declare function getGeneralFolderNoteBasename(): string; export declare function getGeneralFolderNotePath(docsPath: string): string; export declare function getPreferencesFolderNoteBasename(): string; export declare function getPreferencesFolderNotePath(docsPath: string): string; export declare function getKindFolderNoteBasename(kindOrDir: string): string; export declare function getKindFolderNotePath(baseDir: string, kindOrDir: string): string; /** Directories to skip during recursive file scanning */ declare const SKIP_DIRS: Set; /** * True for generated structural Markdown that legitimately carries no note * identifier: `kind: index` frontmatter, the fixed `index`/`log`/`review` * files, the global home note, and marked generated directory folder notes. * Every consumer of the vault's canonical Markdown inventory must exclude * exactly this set, so an unindexed authored note is never mistaken for * scaffolding merely because its basename matches its directory. */ export declare function isGeneratedStructuralMarkdown(docsPath: string, filePath: string, frontmatter?: Record): boolean; /** * Resolve the absolute file path for a note based on placement rules. * * Placement rules: * personalization → preferences/{id}-{slug}.md * domain + project → projects/{project}/domain.md * index + project → projects/{project}/{project}.md * log + project → projects/{project}/log.md * {kind} + project → projects/{project}/{kinds}/{id}-{slug}.md * {kind} - no project → general/{kinds}/{id}-{slug}.md * index/log - no project → {vault}/Home.md or log.md (global structural) */ export declare function resolveNotePath(docsPath: string, kind: NoteKind, project: string | null, id: string, slug: string): string; export declare function extractProjectFromTags(tags: string[]): string | null; export interface WalkMarkdownFilesOptions { /** Called when a filesystem failure prevents traversal from being complete. */ onError?: (error: unknown, filePath: string) => void; } /** * Recursively collect all .md files from a directory tree. * Skips .index/, .obsidian/, templates/, .git/, node_modules/. */ export declare function walkMarkdownFiles(dirPath: string, options?: WalkMarkdownFilesOptions): string[]; export { SINGLETON_KINDS, KIND_DIR_MAP, SKIP_DIRS }; //# sourceMappingURL=path-resolver.d.ts.map