/** * Session Manager - Pure domain logic for design session lifecycle * * This module provides functions for managing design session state. * All functions are framework-independent and isolated to the domain layer. */ import type { PhaseId, PhaseTransition, SessionConfig, SessionContext, SessionState } from "./types.js"; /** * Creates a new design session with initial state * * @param id - Unique session identifier * @param context - Session context data * @param config - Optional session configuration * @returns Newly created session state * * @example * ```typescript * const session = createSession('session-1', { * goal: 'Build authentication system', * requirements: ['OAuth', 'JWT'] * }); * ``` */ export declare function createSession(id: string, context: SessionContext, config?: SessionConfig): SessionState; /** * Retrieves an existing session by ID * * @param id - Session identifier * @returns Session state if found, undefined otherwise * * @example * ```typescript * const session = getSession('session-1'); * if (session) { * console.log(`Current phase: ${session.phase}`); * } * ``` */ export declare function getSession(id: string): SessionState | undefined; /** * Updates the current phase of a session * * @param id - Session identifier * @param newPhase - Target phase to transition to * @param content - Optional content describing the transition * @returns Updated session state * @throws Error if session not found * * @example * ```typescript * const updated = updateSessionPhase('session-1', 'requirements', 'Discovery complete'); * console.log(`Transitioned from ${updated.history[0].from} to ${updated.history[0].to}`); * ``` */ export declare function updateSessionPhase(id: string, newPhase: PhaseId, content?: string): SessionState; /** * Updates session context with new data * * @param id - Session identifier * @param updates - Context updates to merge * @returns Updated session state * @throws Error if session not found * * @example * ```typescript * const updated = updateSessionContext('session-1', { * stakeholders: ['Product', 'Engineering'] * }); * ``` */ export declare function updateSessionContext(id: string, updates: Partial): SessionState; /** * Deletes a session from storage * * @param id - Session identifier * @returns true if session was deleted, false if not found * * @example * ```typescript * const deleted = deleteSession('session-1'); * console.log(deleted ? 'Deleted' : 'Not found'); * ``` */ export declare function deleteSession(id: string): boolean; /** * Lists all active session IDs * * @returns Array of session identifiers * * @example * ```typescript * const sessionIds = listSessions(); * console.log(`Active sessions: ${sessionIds.length}`); * ``` */ export declare function listSessions(): string[]; /** * Clears all sessions from storage * Useful for testing and cleanup * * @example * ```typescript * clearAllSessions(); * console.log(`Sessions: ${listSessions().length}`); // 0 * ``` */ export declare function clearAllSessions(): void; /** * Gets the current phase of a session * * @param id - Session identifier * @returns Current phase ID or undefined if session not found * * @example * ```typescript * const phase = getCurrentPhase('session-1'); * console.log(`Current phase: ${phase}`); * ``` */ export declare function getCurrentPhase(id: string): PhaseId | undefined; /** * Gets the transition history of a session * * @param id - Session identifier * @returns Array of phase transitions or empty array if session not found * * @example * ```typescript * const history = getSessionHistory('session-1'); * console.log(`Total transitions: ${history.length}`); * ``` */ export declare function getSessionHistory(id: string): PhaseTransition[]; //# sourceMappingURL=session-manager.d.ts.map