/** * ARKA Rule and Entity Registry * * In-memory registry for rules and entity types. * This is used by the pure core library; persistent storage is handled by services. */ import type { ArkaRule, ArkaEntityType, ArkaEvent, ArkaEntity, RuleFilterParams } from '@arka-protocol/types'; /** * In-memory rule registry */ export declare class RuleRegistry { private rules; private ruleVersions; /** * Registers a rule with the specified version */ registerRule(rule: ArkaRule, version?: number): void; /** * Gets a rule by ID (latest version) */ getRule(id: string): ArkaRule | undefined; /** * Gets a specific version of a rule */ getRuleVersion(id: string, version: number): ArkaRule | undefined; /** * Gets all versions of a rule */ getRuleVersions(id: string): ArkaRule[]; /** * Removes a rule from the registry */ unregisterRule(id: string): boolean; /** * Gets all registered rules */ getAllRules(): ArkaRule[]; /** * Gets rules filtered by various criteria */ getRules(filter?: RuleFilterParams): ArkaRule[]; /** * Gets active rules for a specific event and optional entity */ getActiveRulesFor(event: ArkaEvent, entity?: ArkaEntity | null): ArkaRule[]; /** * Clears all rules from the registry */ clear(): void; /** * Returns the count of registered rules */ get size(): number; } /** * In-memory entity type registry */ export declare class EntityTypeRegistry { private entityTypes; /** * Registers an entity type */ registerEntityType(type: ArkaEntityType): void; /** * Gets an entity type by name */ getEntityType(name: string): ArkaEntityType | undefined; /** * Removes an entity type from the registry */ unregisterEntityType(name: string): boolean; /** * Gets all registered entity types */ getAllEntityTypes(): ArkaEntityType[]; /** * Checks if an entity type exists */ hasEntityType(name: string): boolean; /** * Clears all entity types from the registry */ clear(): void; /** * Returns the count of registered entity types */ get size(): number; } export declare function getDefaultRuleRegistry(): RuleRegistry; export declare function getDefaultEntityTypeRegistry(): EntityTypeRegistry; export declare function resetDefaultRegistries(): void; //# sourceMappingURL=registry.d.ts.map