/** * The proportional thumb is never allowed to cover more than this share of the * track, so there is always somewhere left to drag it to. */ export declare const MAX_THUMB_HEIGHT_RATIO = 0.8; export interface ThumbHeightConfig { /** Height of the rendered track, in pixels. */ availableHeight: number; /** Height of the scrollable viewport. */ containerHeight: number; /** Total height of the scrollable content. */ contentHeight: number; /** Fixed thumb height. Overrides proportional sizing entirely. */ thumbHeight?: number; /** Lower bound for the proportional height. Ignored when `thumbHeight` is set. */ minThumbHeight?: number; } /** * Resolves the height of the scroll thumb. * * Precedence: * 1. Nothing to scroll -> no thumb. * 2. `thumbHeight` -> used verbatim, clamped only to the track height. * 3. Otherwise the container/content ratio, capped at {@link MAX_THUMB_HEIGHT_RATIO} * of the track and then raised to `minThumbHeight` if one is set. * * The result is always within `[0, availableHeight]`. */ export declare const resolveThumbHeight: ({ availableHeight, containerHeight, contentHeight, thumbHeight, minThumbHeight, }: ThumbHeightConfig) => number;