import { Ref } from 'vue'; import { InternalMarkObj } from '../Marks'; import { IsHandleDisabled } from './useDisabled'; /** Format value align with step & marks */ type FormatValue = (value: number) => number; type OffsetMode = 'unit' | 'dist'; export type OffsetValues = (values: number[], offset: number | 'min' | 'max', valueIndex: number, mode?: OffsetMode) => { value: number; values: number[]; }; /** * Get the effective moving range for a handle, treating disabled handles as * fixed anchors and applying `pushable` as the gap that enabled handles must * keep away from those anchors. Mirrors rc-slider#1069. */ export declare function getDisabledBoundaryValues(values: number[], valueIndex: number, min: number, max: number, pushable: false | number | null, isHandleDisabled: IsHandleDisabled): [number, number]; /** * Find the nearest enabled handle that can accept the target value. A handle * is only considered when the target value falls inside its disabled-anchor * boundaries, so clicking outside an enabled segment becomes a no-op. */ export declare function getClosestEnabledHandleIndex(values: number[], targetValue: number, min: number, max: number, pushable: false | number | null, isHandleDisabled: IsHandleDisabled): number; export default function useOffset(min: Ref, max: Ref, step: Ref, markList: Ref, allowCross: Ref, pushable: Ref, isHandleDisabled: IsHandleDisabled): [FormatValue, OffsetValues]; export {};