import type { Resource } from '../../../resource/base.ts'; import { FileStat, type MountMode, type PathSpec } from '../../../types.ts'; import type { ResolveFn } from '../../dispatcher/index.ts'; import type { MountEntry } from '../mount.ts'; import type { NamespaceStore } from './store.ts'; import type { MountRegistry } from '../registry.ts'; export interface NodeMeta { target?: string; mtime?: number; mode?: number; uid?: number | string; gid?: number | string; atime?: string; observedMtime?: number; } export interface SetAttrsFields { mode?: number; uid?: number | string; gid?: number | string; atime?: string; mtime?: number; } export declare class Namespace { private readonly registry; private readonly resolveFn; private readonly store; private nodeTable; private loaded; private loading; private readonly claim; private workspaceUser; private userResolved; private userResolving; constructor(registry: MountRegistry, resolveFn: ResolveFn, store?: NamespaceStore, user?: string | null); get nodes(): Map; get user(): string | null; private resolveUser; ensureLoaded(): Promise; replaceNodes(entries: Map): Promise; close(): Promise; symlinkTargets(): Map; hasLinks(): boolean; isLink(path: string): boolean; readlink(path: string): string | null; symlink(link: string, target: string, mtime: number): Promise; metaFor(path: string): NodeMeta | null; setAttrs(path: string, fields: SetAttrsFields): Promise; dropAttrs(path: string, fields: readonly string[]): Promise; dropOverlay(path: string): Promise; clearTimes(path: string, observed?: number | null): Promise; unlink(path: string): Promise; unlinkGlob(pattern: string): Promise; rename(src: string, dst: string): Promise; follow(path: string): string; linkStatAt(path: string): FileStat | null; linkStatsBelow(directory: string): [string, FileStat][]; linkStatsUnder(directory: string): FileStat[]; linkNamesUnder(directory: string): Set; private linksUnder; purgeUnder(directory: string): Promise; resolve(path: string, follow?: boolean): Promise<[Resource, PathSpec, MountMode]>; mountFor(path: string): MountEntry; tryMountFor(path: string): MountEntry | null; mountPrefixes(): string[]; isMountRoot(path: string): boolean; } //# sourceMappingURL=namespace.d.ts.map