/** * SessionView — typed wrapper over Session[] with collection helpers. * * Provides discoverable query methods for common session lookups. * Does NOT change the DataAccessor interface — consumers create views from Session[]. * * Usage: * const sessions = await accessor.loadSessions(); * const view = SessionView.from(sessions); * const active = view.findActive(); * * @epic T4454 */ import type { Session, SessionStatus } from '@cleocode/contracts'; export declare class SessionView { private readonly _sessions; constructor(sessions: Session[]); /** Create a SessionView from a Session array. */ static from(sessions: Session[]): SessionView; /** All sessions in the view (readonly). */ get all(): readonly Session[]; /** Number of sessions. */ get length(): number; /** Find the currently active session (if any). */ findActive(): Session | undefined; /** Find a session by ID. */ findById(id: string): Session | undefined; /** Filter sessions by one or more statuses. */ filterByStatus(...statuses: SessionStatus[]): Session[]; /** Find sessions matching a scope type and optional rootTaskId. */ findByScope(type: string, rootTaskId?: string): Session[]; /** Sort sessions by a date field. Returns a new array (does not mutate). */ sortByDate(field: 'startedAt' | 'endedAt', descending?: boolean): Session[]; /** Get the most recently started session. */ mostRecent(): Session | undefined; /** Convert back to a plain Session array (shallow copy). */ toArray(): Session[]; /** Support for-of iteration. */ [Symbol.iterator](): Iterator; } //# sourceMappingURL=session-view.d.ts.map