/** * Decision Store for outcome tracking * * In-memory storage for decision records, enabling outcome * reporting and decision attribution. */ import type { DecisionRecord, DecisionOutcome } from '../types/index.js'; /** * Configuration for DecisionStore */ export interface DecisionStoreConfig { /** Maximum number of records to store (default: 1000) */ maxRecords?: number; /** TTL in milliseconds for records (default: 24 hours) */ ttlMs?: number; } /** * In-memory decision storage with TTL-based cleanup */ export declare class DecisionStore { private records; private readonly maxRecords; private readonly ttlMs; private cleanupInterval?; constructor(config?: DecisionStoreConfig); /** * Store a new decision record */ store(record: DecisionRecord): void; /** * Get a decision record by ID */ get(decisionId: string): DecisionRecord | undefined; /** * Update a decision record with outcome */ updateOutcome(decisionId: string, outcome: DecisionOutcome): boolean; /** * Check if a decision record exists */ has(decisionId: string): boolean; /** * Get all decision records (for testing/debugging) */ getAll(): DecisionRecord[]; /** * Get count of stored records */ get size(): number; /** * Remove expired records based on TTL */ cleanup(): number; /** * Clear all records (for testing) */ clear(): void; /** * Shutdown the store (cleanup interval) */ shutdown(): void; } //# sourceMappingURL=decision-store.d.ts.map