/**
 * Update the maximum scroll offset (total transcript lines − viewport rows).
 * Called by App whenever content length or viewport height changes. Re-pins to
 * the bottom when the user hasn't scrolled, otherwise clamps their offset into
 * the new range. Emits only when the offset actually changes, so growing
 * content during a scroll-locked read doesn't churn renders.
 */
export declare function setTranscriptScrollBounds(nextMaxOffset: number): void;
/**
 * Scroll by a signed number of lines. Positive scrolls UP (toward older
 * output), negative scrolls DOWN (toward newest). No-op when clamped to an
 * edge, so wheel jitter at the top/bottom can't churn renders.
 */
export declare function scrollTranscriptByLines(deltaLines: number): void;
/** Set the absolute offset (used by PageUp/Down, Shift+Arrows, g/G). */
export declare function setTranscriptScrollOffset(targetOffset: number): void;
/** Page up/down relative to the current offset by `page` lines. */
export declare function pageTranscriptScroll(page: number): void;
/** Snap back to the newest output (offset 0) — e.g. on a new prompt submit. */
export declare function resetTranscriptScroll(): void;
/** Jump to the very top (oldest output). */
export declare function scrollTranscriptToTop(): void;
/** Current clamped offset, non-reactively (for tests / imperative reads). */
export declare function getTranscriptScrollOffset(): number;
/** Reactive hook: re-renders the caller only when the scroll offset changes. */
export declare function useTranscriptScrollOffset(): number;
//# sourceMappingURL=transcript-scroll-store.d.ts.map