import { type MouseEvent, type RefObject, type TouchEvent } from "react";
import { type ClientPositionEvent, type ClientPositionOptions } from "../utils/getClientPosition.js";
/**
 * @internal
 */
export declare const isMouseDragStartEvent: (event: MouseEvent) => boolean;
/**
 * @internal
 */
export declare const isTouchDragStartEvent: (event: TouchEvent) => boolean;
/**
 * @internal
 */
interface DragPositionOptions extends ClientPositionOptions {
    isRTL: boolean;
    reversed: boolean;
    container: Element;
}
/**
 * @internal
 */
export declare const getDragPosition: (options: DragPositionOptions) => number;
/**
 * @internal
 */
interface RelativeDragPositionOptions extends DragPositionOptions {
    min: number;
    max: number;
    step: number;
    rangeMin: number;
    rangeMax: number;
}
/**
 * @internal
 */
interface RelativeDragPosition {
    value: number;
    dragPercentage: number;
}
/**
 * @internal
 */
export declare const getRelativeDragPosition: (options: RelativeDragPositionOptions) => RelativeDragPosition;
/**
 * @internal
 */
interface UpdateDragPositionOptions extends Omit<RelativeDragPositionOptions, "container"> {
    event: ClientPositionEvent;
    nodeRef: RefObject<HTMLElement>;
    focus?: boolean;
    isDragStart: boolean;
    setValue(value: number): void;
    setDragging(dragging: boolean): void;
    setDragPercentage(value: number): void;
    withinOffsetParent: boolean;
}
/**
 * @internal
 */
export declare const updateDragPosition: (options: UpdateDragPositionOptions) => void;
/**
 * @internal
 * @remarks \@since 6.0.0
 */
export interface DeserializeDraggableValueOptions {
    min: number;
    max: number;
    item: string;
}
/**
 * @internal
 * @remarks \@since 6.0.0
 */
export declare function deserializeDraggableValue(options: DeserializeDraggableValueOptions): number;
export {};
