import type { Dirent, Stats } from "node:fs"; import { type SkillIndexEntry } from "@mono-agent/agent-harness"; import type { TuiSkillRegistry } from "@mono-agent/operator-adapter"; export declare const SKILL_REGISTRY_REFRESH_MS = 5000; export declare const MAX_SKILL_REGISTRY_ITEMS = 256; export declare const MAX_SKILL_DESCRIPTION_BYTES = 256; export declare const MAX_SKILL_REGISTRY_BYTES: number; type SkillIndexLoader = (root: string) => Promise; type SkillRegistrySignatureReader = (root: string) => Promise; export interface SkillRegistryLogger { warn?(message: string, metadata?: Record): void; } export interface CreateSkillRegistryMonitorOptions { readonly skillsRoot?: string; readonly selectedSkills: readonly string[]; readonly skillDisclosure?: "index" | "full"; readonly disallowedTools: readonly string[]; readonly logger?: SkillRegistryLogger; /** Test seam for observing authoritative loader calls. */ readonly loadIndex?: SkillIndexLoader; /** Test seam for deterministic filesystem invalidation. */ readonly readSignature?: SkillRegistrySignatureReader; readonly refreshMs?: number; } export interface SkillRegistryMonitor { /** Loads the first knowable snapshot before the operator server is exposed. */ prime(): Promise; /** Returns the latest atomic snapshot without doing filesystem work. */ snapshot(): TuiSkillRegistry; /** Revalidates immediately; duplicate calls share one in-flight refresh. */ refresh(): Promise; start(): void; stop(): void; } export declare function isReadSkillDenied(disallowedTools: readonly string[]): boolean; export declare function createSkillRegistryMonitor(options: CreateSkillRegistryMonitorOptions): SkillRegistryMonitor; export declare function buildSkillRegistry(entries: readonly SkillIndexEntry[], options: { readonly selectedSkills: readonly string[]; readonly skillDisclosure?: "index" | "full"; readonly readSkillDenied: boolean; }): TuiSkillRegistry; export declare function readSkillRegistrySignature(skillsRoot: string, dependencies?: { readonly readdir?: (path: string, options: { withFileTypes: true; }) => Promise; readonly stat?: (path: string) => Promise; }): Promise; export {}; //# sourceMappingURL=skill-registry.d.ts.map