import type { DateTime } from '@gravity-ui/date-utils'; import type { RangeValue, ValueBase } from "../../types/index.js"; export interface RangeDateSelectionState { viewportInterval: RangeValue; value: RangeValue; setValue: (value: RangeValue) => void; timeZone: string; setDraggingValue: (value: RangeValue | null) => void; canResize: boolean; startDragging: () => void; move: (delta: number, options?: { visualMinDuration?: number; }) => void; scale: (scale: number, options?: { visualMinDuration?: number; fixedPoint?: number; }) => void; moveStart: (delta: number, options?: { visualMinDuration?: number; }) => void; moveEnd: (delta: number, options?: { visualMinDuration?: number; }) => void; endDragging: () => void; align: number; isDragging: boolean; } export interface RangeDateSelectionOptions extends ValueBase> { /** The minimum allowed date that a user may select. */ minValue?: DateTime; /** The maximum allowed date that a user may select. */ maxValue?: DateTime; /** Minimum duration of the selection in milliseconds. Defaults to 1 second. */ minDuration?: number; /** Maximum duration of the selection in milliseconds. Defaults to 15 years. */ maxDuration?: number; /** Alignment of the selection in milliseconds. Defaults to 1 second. */ align?: number; /** A placeholder date that controls the default values of each segment when the user first interacts with them. Defaults to today's date at midnight. */ placeholderValue?: DateTime; /** * Which timezone use to show values. Example: 'default', 'system', 'Europe/Amsterdam'. * @default The timezone of the `value` or `defaultValue` or `placeholderValue`, 'default' otherwise. */ timeZone?: string; /** * The number of selection intervals that fit into the underlying ruler. * @default 4 */ numberOfIntervals?: number; /** * Place of the selection on the underlying ruler. * Value must be between 0 and 1, where 0 is the start of the ruler and 1 is the end. * @default 0.5 - center of the ruler */ placeOnRuler?: number; } export declare function useRangeDateSelectionState(props: RangeDateSelectionOptions): RangeDateSelectionState;