import { TimelineControlCommitDetails } from "../core/timelineControlEvents.mjs"; //#region src/hooks/viewport/useTimelineZoomControl.d.ts /** * Options for adapting timeline zoom to a scalar control. */ interface TimelineZoomControlOptions { /** Minimum zoom scale in pixels per second. Defaults to 10. */ min?: number; /** Maximum zoom scale in pixels per second. Defaults to 1000. */ max?: number; /** Slider step in pixels per second. Defaults to 10. */ step?: number; /** Accessible label for the zoom control. */ label?: string; /** * Called after the hook applies a committed control value to the engine. * * When the underlying scalar control provides commit details, Canvas Timeline * forwards them unchanged as the second argument and does not read their * fields. */ onValueCommitted?: (value: number[], eventDetails?: TimelineControlCommitDetails) => void; } /** * Adapts timeline zoom scale to a Base UI-compatible scalar slider. * * Use this hook when a product toolbar needs a focused, semantic zoom control * rather than broad viewport commands from `useTimelineViewport`. The returned * root props mutate `TimelineEngine.zoomScale`; thumb props provide the default * label and formatted `aria-valuetext`. * * @param options - Optional zoom bounds, step size, label, and commit callback. * @returns Current zoom scale, formatted value text, imperative setters, and props for `Slider.Root` plus `Slider.Thumb`. * * @example * ```tsx * const zoom = useTimelineZoomControl({ min: 25, max: 400, step: 25 }); * * return ( * * * * * * * * * ); * ``` */ declare function useTimelineZoomControl(options?: TimelineZoomControlOptions): { /** Accessible label used by the default thumb props. */ label: string; /** Maximum zoom scale in pixels per second. */ max: number; /** Minimum zoom scale in pixels per second. */ min: number; /** Slider step in pixels per second. */ step: number; /** Current zoom scale in pixels per second. */ value: any; /** Formatted zoom value for assistive technology. */ valueText: string; /** Sets zoom scale without an additional explicit commit callback. */ setValue: (nextValue: number) => void; /** Sets zoom scale and settles the engine interaction. */ commit: (nextValue?: any) => void; /** Formats a zoom-scale value for `aria-valuetext`. */ getAriaValueText: any; /** Props for a Base UI `Slider.Root`. */ rootProps: any; /** Props for a Base UI `Slider.Thumb`. */ thumbProps: any; }; //#endregion export { TimelineZoomControlOptions, useTimelineZoomControl }; //# sourceMappingURL=useTimelineZoomControl.d.mts.map