import { Ref } from 'vue'; /** * Move sortable elements in the list * @param list List of sortable elements * @param from Original element position * @param to New element position */ export declare function moveSortableElements({ list, from, to }: MoveSortableElementsOptions): void; export declare interface MoveSortableElementsOptions { list: RefOrGetter; from: number; to: number; } /** * Like the MaybeRefOrGetter type from Vue, but without the Maybe. Can be used to ensure the most up-to-date value is available. */ declare type RefOrGetter = Ref | (() => T); export declare interface SortableDragEvent extends DragEvent { /** * The old index of the dragged element */ oldIndex: number; /** * The new index of the dragged element */ newIndex: number; } export declare type SortableOnDragEndEvent = SortableDragEvent; export declare type SortableOnDragStartEvent = Omit; declare function useSortable({ isEnabled, sortInPlace, ...options }: UseSortableOptions): UseSortableReturn; export default useSortable; export declare interface UseSortableOptions { /** * The parent element of the sortable elements */ ref: Ref; /** * The list of sortable elements to be sorted */ list: Ref; /** * Enables/Disables drag and drop sorting * @default true */ isEnabled?: boolean; /** * Class name for the ghost element * @default '' */ ghostClass?: string; /** * Class name for the chosen element * @default '' */ chosenClass?: string; /** * Sort the list in place * @default true */ sortInPlace?: boolean; /** * Callback when the dragging starts */ onDragStart?: (e: SortableOnDragStartEvent) => void; /** * Callback when the dragging ends */ onDragEnd?: (e: SortableOnDragEndEvent) => void; } export declare interface UseSortableReturn { /** * Whether the element is currently being dragged */ isDragging: Ref; /** * The new position of the dragged element */ newIndex: Ref; /** * The original position of the dragged element */ oldIndex: Ref; } export { }