/** * Right-edge rail for the managed viewport. Its first column is the copy icon * (or blank), the second is a visual gap, and the third is the scrollbar track. * All three columns are always reserved, so copy affordances and scrollability * never reflow chat content. * * The gap column doubles as the drag-selection highlight band: while a drag is * in progress, the subscribing component re-renders ONLY this rail (via * useSyncExternalStore on {@link SelectionBandStore}) — the history cards * never re-render, and because the band occupies the already-reserved gap * column the layout (and the fixed-height overflow-hidden viewport) cannot * change mid-drag. * * Extracted from scrollable-history.tsx. */ import type React from 'react'; import type { CopyHit } from './copy-geometry.js'; import { type SelectionBandStore } from './selection-band-store.js'; export declare function Scrollbar({ rows, offset, total, copyHits, copiedEntryId, selectionBandStore, }: { rows: number; offset: number; total: number; copyHits: readonly CopyHit[]; copiedEntryId?: number | null | undefined; selectionBandStore?: SelectionBandStore | undefined; }): React.ReactElement; //# sourceMappingURL=scrollbar-rail.d.ts.map