import type { SkillSessionState } from './skill-session.types'; /** * Interface for skill session storage. * Implementations can store session state in memory, Redis, etc. */ export interface SkillSessionStore { /** * Save or update a session state. */ save(session: SkillSessionState): Promise; /** * Get a session state by ID. * Returns null if session doesn't exist. */ get(sessionId: string): Promise; /** * Update specific fields of a session. */ update(sessionId: string, updates: Partial): Promise; /** * Delete a session. */ delete(sessionId: string): Promise; /** * List active sessions (sessions with an active skill). */ listActive(options?: { limit?: number; }): Promise; /** * Clean up expired sessions. * @param maxAge - Maximum age in milliseconds */ cleanup(maxAge: number): Promise; /** * Store type identifier. */ readonly type: 'memory' | 'redis' | 'custom'; } /** * In-memory implementation of SkillSessionStore. * Suitable for single-instance deployments or testing. */ export declare class MemorySkillSessionStore implements SkillSessionStore { readonly type: "memory"; private sessions; /** * Deep-clone the activeSkills Map and its nested Sets. */ private cloneActiveSkills; save(session: SkillSessionState): Promise; get(sessionId: string): Promise; update(sessionId: string, updates: Partial): Promise; delete(sessionId: string): Promise; listActive(options?: { limit?: number; }): Promise; cleanup(maxAge: number): Promise; /** * Clear all sessions. Useful for testing. */ clear(): void; /** * Get the number of stored sessions. */ size(): number; } /** * Factory function to create a skill session store. */ export declare function createSkillSessionStore(options?: { type?: 'memory' | 'redis'; redis?: { host?: string; port?: number; keyPrefix?: string; }; }): SkillSessionStore; //# sourceMappingURL=skill-session-store.interface.d.ts.map