import { MaybeRef, MaybeRefOrGetter } from "vue"; import { ConfigurableDocument, MaybeElement } from "@vueuse/core"; import Sortable, { Options } from "sortablejs"; //#region useSortable/index.d.ts interface UseSortableReturn { /** * start sortable instance */ start: () => void; /** * destroy sortable instance */ stop: () => void; /** * Options getter/setter * @param name a Sortable.Options property. * @param value a value. */ option: ((name: K, value: Sortable.Options[K]) => void) & ((name: K) => Sortable.Options[K]); } interface UseSortableOptions extends Options, ConfigurableDocument { /** * Watch the element reference for changes and automatically reinitialize Sortable * when the element changes. * * When `false` (default), Sortable is only initialized once on mount. * You must manually call `start()` if the element reference changes. * * When `true`, automatically watches the element reference and reinitializes * Sortable whenever it changes (e.g., conditional rendering with v-if). * * @default false */ watchElement?: boolean; } declare function useSortable(selector: string, list: MaybeRef, options?: UseSortableOptions): UseSortableReturn; declare function useSortable(el: MaybeRefOrGetter, list: MaybeRef, options?: UseSortableOptions): UseSortableReturn; /** * Inserts a element into the DOM at a given index. * @param parentElement * @param element * @param {number} index * @see https://github.com/Alfred-Skyblue/vue-draggable-plus/blob/a3829222095e1949bf2c9a20979d7b5930e66f14/src/utils/index.ts#L81C1-L94C2 */ declare function insertNodeAt(parentElement: Element, element: Element, index: number): void; /** * Removes a node from the DOM. * @param {Node} node * @see https://github.com/Alfred-Skyblue/vue-draggable-plus/blob/a3829222095e1949bf2c9a20979d7b5930e66f14/src/utils/index.ts#L96C1-L102C2 */ declare function removeNode(node: Node): void; declare function moveArrayElement(list: MaybeRef, from: number, to: number, e?: Sortable.SortableEvent | null): void; //#endregion export { UseSortableOptions, UseSortableReturn, insertNodeAt, moveArrayElement, removeNode, useSortable };