import type { ServerEvent, SessionEvent, SessionMeta } from '@crosspane/protocol'; export interface StoredSession { meta: SessionMeta; live: boolean; endedAt?: number; events: SessionEvent[]; /** 상한을 넘어 버린 이벤트 수 — 답이 전량이 아님을 밝히기 위해 유지한다 */ dropped: number; } export declare class SessionStore { private readonly eventLimit; private readonly sessions; constructor(eventLimit?: number); apply(event: ServerEvent): void; list(): StoredSession[]; /** * 세션 지시자 해석 — 코딩 에이전트는 id보다 라벨("결제 웹뷰")로 부르는 게 자연스럽고, * 세션이 하나뿐이면 아예 생략하는 게 자연스럽다. 둘 다 받아준다. */ resolve(selector: string | undefined): StoredSession | undefined; private ensure; }