import type { NotesContext } from "./context.js"; export type Scope = "session" | "project" | "human" | "agent" | "model"; /** The one legal home-name shape: lowercase [a-z0-9-] runs separated by single dashes. */ export declare const SLUG_PATTERN: RegExp; /** Slugify a caller-declared identity; identity is never inferred from note content. */ export declare function slugify(value: string): string; /** ``, or the same formula over cwd with no git root. */ export declare function projectKey(cwd: string): string; /** Absolute directory holding the per-session note homes. */ export declare function sessionHomesRoot(home: string): string; /** Absolute directory holding one scope's notes. The context's home is already resolved. */ export declare function scopeDir(scope: Scope, context: NotesContext, who?: string): string; /** Every existing home directory of the agents/ or models/ namespace, as names. */ export declare function namespaceSlugs(namespace: "agents" | "models", home: string): Promise; /** * Notes are markdown files: a virtual path without an `.md` suffix gains one, an explicit * `.md` is kept as-is, so `a/b` and `a/b.md` name the same physical file. */ export declare function noteFileName(vpath: string): string; /** Absolute file path for a virtual path in a scope. Callers validate the vpath first. */ export declare function physicalPath(scope: Scope, vpath: string, context: NotesContext, who?: string): string;