/** * This class represents a scrollbar thumb that can be used within a grid view * to provide scrolling functionality for overflowing content. * * @typedef {"horizontal" | "vertical"} ScrollDirection */ export default class Scrollbar extends UnitView { /** * @param {import("./gridChild.js").default} gridChild * @param {ScrollDirection} scrollDirection * @param {{ onViewportOffsetChange?: (offset: number) => void }} [options] */ constructor(gridChild: import("./gridChild.js").default, scrollDirection: ScrollDirection, options?: { onViewportOffsetChange?: (offset: number) => void; }); /** * The actual state of the scrollbar. * * It's better to keep track of the viewport offset rather than the * scrollbar offset because the former is more stable when the * viewport size changes. */ viewportOffset: number; config: { scrollbarSize: number; scrollbarPadding: number; scrollbarMinLength: number; }; get scrollOffset(): number; /** * @param {number} value * @param {{ notify?: boolean, syncSmoother?: boolean }} [options] */ setViewportOffset(value: number, { notify, syncSmoother }?: { notify?: boolean; syncSmoother?: boolean; }): void; /** * Updates the scrollbar with the latest viewport and content rectangles. * * Viewport coords are flattened to stay stable between layout passes, while * content coords may be dynamic (e.g., peek transitions) and are evaluated * on demand via accessors. * * @param {Rectangle} viewportCoords * @param {Rectangle} contentCoords */ updateScrollbar(viewportCoords: Rectangle, contentCoords: Rectangle): void; interpolateViewportOffset: ((target: { x: number; }) => void) & { stop: () => void; }; #private; } /** * This class represents a scrollbar thumb that can be used within a grid view * to provide scrolling functionality for overflowing content. */ export type ScrollDirection = "horizontal" | "vertical"; import UnitView from "../unitView.js"; import Rectangle from "../layout/rectangle.js"; //# sourceMappingURL=scrollbar.d.ts.map