/**
 * 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<Session>;
}
//# sourceMappingURL=session-view.d.ts.map