/** * PrincipleManager - Manages principle CRUD operations with domain filtering and deprecation */ import type { Principle, PrincipleStatus } from '../types/knowledge.js'; import type { StorageProvider, VersionInfo } from '../types/storage.js'; /** * Input for creating a new principle (without id and metadata) */ export interface CreatePrincipleInput { content: string; domain: string[]; weight?: number; evidence?: Principle['evidence']; status?: PrincipleStatus; source?: string; } /** * Input for updating a principle */ export interface UpdatePrincipleInput { content?: string; domain?: string[]; weight?: number; evidence?: Principle['evidence']; status?: PrincipleStatus; } /** * Manages principles storage and retrieval with filtering and versioning */ export declare class PrincipleManager { private readonly storage; constructor(storage: StorageProvider); /** * Get the storage key for a user's principles */ private getKey; /** * Get all principles for a user, optionally filtered by domains */ get(userId: string, domains?: string[]): Promise; /** * Get a specific principle by ID */ getById(userId: string, principleId: string): Promise; /** * Add a new principle */ add(userId: string, input: CreatePrincipleInput): Promise; /** * Update an existing principle */ update(userId: string, principleId: string, update: UpdatePrincipleInput): Promise; /** * Deprecate a principle */ deprecate(userId: string, principleId: string, reason: string): Promise; /** * Delete a principle (hard delete) */ delete(userId: string, principleId: string): Promise; /** * Get principles by status */ getByStatus(userId: string, status: PrincipleStatus): Promise; /** * Get principles history (versions) */ getHistory(userId: string): Promise; /** * Get a specific version of principles */ getVersion(userId: string, version: number): Promise; } //# sourceMappingURL=PrincipleManager.d.ts.map