import type { SessionEvent } from "@opengeni/sdk"; export declare const SESSION_ATTENTION_EVENT_TYPES: ReadonlySet; /** * The latest delivered attention boundary, independent of raw token activity. * A foreground reader acknowledges through this sequence, so streaming flushes * never cause a personal-state write and later activity stays unread. */ export declare function sessionAttentionReadThroughSequence(events: readonly SessionEvent[]): number; /** * Where an open conversation should be acknowledged through, and whether it * needs it: the server says unread, or a newer attention boundary has been * delivered since the session row was read. The frontier never moves for * streaming activity, so a reader writes personal state once per boundary. */ export declare function readAcknowledgementFrontier(session: { unread?: boolean | undefined; lastSequence?: number | undefined; } | null | undefined, attentionThrough: number): { readThrough: number; unread: boolean; };