import type { NotesContext } from "./context.js"; import { type Scope } from "./paths.js"; export type NoteAddress = { scope: Scope; path: string; who?: string; }; export declare const ADDRESS_FORMS = "legal prefixes are @project/, @human/, @self/, and @model/; bare names are this session"; export declare function assertVirtualPath(value: unknown): string; /** * Minimal glob over virtual note paths: `*` matches any run within a segment (never * `/`), `**` matches any run across segments (a leading double-star followed by a * slash also matches zero segments, so it covers the root too), `?` matches exactly * one non-`/` character. Everything else is literal and the match is anchored to the * whole path. */ export declare function globToRegExp(pattern: string): RegExp; /** Glob patterns are not virtual paths (`*` is legal), so they get their own guard. */ export declare function assertGlobPattern(value: unknown): string | undefined; /** * Decode one public note address into its physical home and virtual path. @self and @model * are relative; explicit agents/models addresses always name a canonical slug. */ export declare function assertAddress(value: unknown): NoteAddress; /** Render a virtual path in its one unambiguous public address form. */ export declare function addressFor(context: NotesContext, scope: Scope, path: string, who?: string): string;