import type { MemoryRule } from "../types/memoryRule.js"; import { Container } from "../utils/container.js"; export interface MemoryRuleRegistryState { /** All discovered rules, indexed by ID */ rules: Record; /** Set of active rule IDs based on the current context */ activeRuleIds: Set; } export interface MemoryRuleManagerOptions { workdir: string; } export declare class MemoryRuleManager { private container; private state; private workdir; private service; constructor(container: Container, options: MemoryRuleManagerOptions); /** * Scans .wave/rules and ~/.wave/rules for memory rule files. */ discoverRules(): Promise; private scanDirectory; private loadRuleFile; /** * Returns the union of all active memory rules based on the provided file paths. */ getActiveRules(filesInContext: string[]): MemoryRule[]; /** * Returns rules split by type: * - unconditional: rules with no `paths` metadata (always active) * - conditional: rules with `paths` metadata that match filesInContext */ getActiveRulesSplit(filesInContext: string[]): { unconditional: MemoryRule[]; conditional: MemoryRule[]; }; /** * Reloads rules from disk. */ reload(): Promise; }