import type { ElicitationRecord, ElicitationResultRecord } from './elicitation.interface'; /** * Storage backend for URL-mode elicitations. Implementations may use memory * (default), Redis, a database, or any other backing store. All methods are * async to support remote stores. */ export interface IElicitationStore { storeElicitation(elicitation: ElicitationRecord): Promise; getElicitation(elicitationId: string): Promise; updateElicitation(elicitationId: string, updates: Partial): Promise; storeResult(result: ElicitationResultRecord): Promise; getResult(elicitationId: string): Promise; /** * Find the most recent completed result for a `(userId, type)` pair where * `type` is sourced from `metadata.type` on the originating record. */ findResultByUserAndType(userId: string, type: string): Promise; removeElicitation(elicitationId: string): Promise; getElicitationsBySession(sessionId: string): Promise; /** Returns the number of records purged. */ cleanupExpired(): Promise; } export declare const ELICITATION_STORE_TOKEN: unique symbol; //# sourceMappingURL=elicitation-store.interface.d.ts.map