/**
 * 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<import("../../spec/view.js").UnitSpec> {
    /**
     * @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