import Database from 'better-sqlite3'; import { Secret, GameEvent } from '../../schema/secret.js'; export interface SecretFilter { worldId?: string; type?: string; category?: string; revealed?: boolean; sensitivity?: string; linkedEntityId?: string; linkedEntityType?: string; } export interface LeakCheck { secretId: string; secretName: string; pattern: string; matched: boolean; context?: string; } export declare class SecretRepository { private db; constructor(db: Database.Database); /** * Create a new secret */ create(secret: Secret): Secret; /** * Find a secret by ID */ findById(id: string): Secret | null; /** * Find all secrets matching filter criteria */ find(filter?: SecretFilter): Secret[]; /** * Get all unrevealed secrets for a world (for LLM context injection) */ getActiveSecrets(worldId: string): Secret[]; /** * Update a secret */ update(id: string, updates: Partial): Secret | null; /** * Reveal a secret */ reveal(id: string, triggeredBy: string): Secret | null; /** * Delete a secret */ delete(id: string): boolean; /** * Check if any secrets should be revealed based on a game event */ checkRevealConditions(worldId: string, event: GameEvent): Secret[]; /** * Check if a specific condition is met by an event * Note: 'manual' type conditions are never auto-triggered */ private conditionMet; /** * Check text for potential secret leaks */ checkForLeaks(text: string, worldId: string): LeakCheck[]; /** * Format secrets for LLM context injection */ formatForLLM(worldId: string): string; private formatConditions; private escapeRegex; private rowToSecret; } //# sourceMappingURL=secret.repo.d.ts.map