import { RangeScrollbarRootProps, RangeScrollbarValue, RangeScrollbarValueChangeDetails, UseRangeScrollbarResult } from "../../rangeScrollbar/RangeScrollbar.mjs"; import "../../rangeScrollbar/index.mjs"; //#region src/hooks/viewport/useTimelineVerticalRangeControl.d.ts /** * Controlled props required by `RangeScrollbar.Root` for vertical timeline scrolling. */ type TimelineVerticalRangeControlRootProps = Pick & Required>; /** * State and control props for rendering a vertical timeline scrollbar. */ interface UseTimelineVerticalRangeControlResult { /** Formatted visible vertical range and height. */ valueText: string; /** Formatted visible top offset. */ startValueText: string; /** Formatted visible bottom offset. */ endValueText: string; /** Generic range scrollbar state derived from vertical timeline viewport state. */ range: UseRangeScrollbarResult; /** Props that wire `RangeScrollbar.Root` to timeline vertical scroll state. */ rootProps: TimelineVerticalRangeControlRootProps; /** Full vertical track stack height represented by the scrollbar domain, in pixels. */ contentHeight: number; /** Visible viewport top offset in pixels. */ viewStartPixels: number; /** Visible viewport bottom offset in pixels. */ viewEndPixels: number; /** Visible viewport height in pixels. */ viewHeight: number; /** Current vertical timeline scroll offset in pixels. */ scrollTop: number; /** Maximum vertical timeline scroll offset in pixels. */ maxScrollTop: number; /** Handles controlled range changes by panning or vertically zooming track rows. */ onValueChange: (value: RangeScrollbarValue, details: RangeScrollbarValueChangeDetails) => void; } /** * Adapts generic range scrollbar state to the timeline's vertical track viewport. * * The hook derives a controlled `{ start, end }` value from `scrollTop`, * `viewportHeight`, and track-stack bounds. Thumb changes pan the engine-owned * vertical scroll position so canvas rows and external DOM chrome can stay in sync. * Handle changes scale expanded track heights, giving the range handles a * vertical zoom behavior that matches the horizontal viewport scrollbar's shape. * * @returns Timeline vertical metrics plus `RangeScrollbar.Root` control props. */ declare function useTimelineVerticalRangeControl(): UseTimelineVerticalRangeControlResult; //#endregion export { TimelineVerticalRangeControlRootProps, UseTimelineVerticalRangeControlResult, useTimelineVerticalRangeControl }; //# sourceMappingURL=useTimelineVerticalRangeControl.d.mts.map