import { type ChatHeightCache } from './chatMeasurement.svelte.js'; import type { ScrollAnchor } from './chatTypes.js'; export type VisualAnchor = ScrollAnchor; export type CaptureVisualAnchorArgs = { messages: T[]; getMessageId: (_message: T) => string; heightCache: ChatHeightCache; estimatedHeight: number; visibleStart: number; topGap: number; headerHeight: number; scrollTop: number; }; export type RestoreVisualAnchorArgs = { anchor: VisualAnchor; messages: T[]; getMessageId: (_message: T) => string; heightCache: ChatHeightCache; estimatedHeight: number; topGap: number; headerHeight: number; }; /** * Capture the first visible message as a visual anchor before late layout * growth, so users scrolled away from bottom keep the same content in view. */ export declare const captureVisualAnchor: (args: CaptureVisualAnchorArgs) => VisualAnchor | null; /** * Calculate the scrollTop that restores a captured visual anchor. */ export declare const restoreVisualAnchor: (args: RestoreVisualAnchorArgs) => number | null;