import { AllowedComponentProps } from 'vue'; import { ComponentCustomProps } from 'vue'; import { ComputedRef } from 'vue'; import { MaybeRefOrGetter } from 'vue'; import { Ref } from 'vue'; import { RendererElement } from 'vue'; import { RendererNode } from 'vue'; import { ShallowUnwrapRef } from 'vue'; import { VNode } from 'vue'; import { VNodeProps } from 'vue'; declare const _default: (__VLS_props: { radius?: ThumbnailRadius | undefined; draggable?: boolean | undefined; removable?: boolean | undefined; thumbnails?: Thumbnail[] | undefined; activeThumbnail?: number | undefined; readonly onDragStart?: ((event: SortableOnDragStartEvent) => any) | undefined; readonly onDragEnd?: ((event: SortableDragEvent) => any) | undefined; readonly "onUpdate:thumbnails"?: ((thumbnails: Thumbnail[]) => any) | undefined; showEmpty?: boolean | undefined; emptyOptions?: ThumbnailEmptyOptions | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps, __VLS_ctx?: { attrs: any; slots: { default?(_: { activeThumbnail: number; isDragging: boolean; }): any; }; emit: ((evt: "dragStart", event: SortableOnDragStartEvent) => void) & ((evt: "dragEnd", event: SortableDragEvent) => void) & ((evt: "update:thumbnails", thumbnails: Thumbnail[]) => void); } | undefined, __VLS_expose?: ((exposed: ShallowUnwrapRef< {}>) => void) | undefined, __VLS_setup?: Promise<{ props: { radius?: ThumbnailRadius | undefined; draggable?: boolean | undefined; removable?: boolean | undefined; thumbnails?: Thumbnail[] | undefined; activeThumbnail?: number | undefined; readonly onDragStart?: ((event: SortableOnDragStartEvent) => any) | undefined; readonly onDragEnd?: ((event: SortableDragEvent) => any) | undefined; readonly "onUpdate:thumbnails"?: ((thumbnails: Thumbnail[]) => any) | undefined; showEmpty?: boolean | undefined; emptyOptions?: ThumbnailEmptyOptions | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps; expose(exposed: ShallowUnwrapRef< {}>): void; attrs: any; slots: { default?(_: { activeThumbnail: number; isDragging: boolean; }): any; }; emit: ((evt: "dragStart", event: SortableOnDragStartEvent) => void) & ((evt: "dragEnd", event: SortableDragEvent) => void) & ((evt: "update:thumbnails", thumbnails: Thumbnail[]) => void); }>) => VNode & { __ctx?: { props: { radius?: ThumbnailRadius | undefined; draggable?: boolean | undefined; removable?: boolean | undefined; thumbnails?: Thumbnail[] | undefined; activeThumbnail?: number | undefined; readonly onDragStart?: ((event: SortableOnDragStartEvent) => any) | undefined; readonly onDragEnd?: ((event: SortableDragEvent) => any) | undefined; readonly "onUpdate:thumbnails"?: ((thumbnails: Thumbnail[]) => any) | undefined; showEmpty?: boolean | undefined; emptyOptions?: ThumbnailEmptyOptions | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps; expose(exposed: ShallowUnwrapRef< {}>): void; attrs: any; slots: { default?(_: { activeThumbnail: number; isDragging: boolean; }): any; }; emit: ((evt: "dragStart", event: SortableOnDragStartEvent) => void) & ((evt: "dragEnd", event: SortableDragEvent) => void) & ((evt: "update:thumbnails", thumbnails: Thumbnail[]) => void); } | undefined; }; export default _default; /** * 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 interface ThumbnailDefinition { id: number | string; imageUrl: string; } export declare interface ThumbnailEmptyOptions { max: number; } export declare interface ThumbnailInjection { isDragging: MaybeRefOrGetter; radius: ThumbnailRadius; draggable: ComputedRef; removable: MaybeRefOrGetter; thumbnails: MaybeRefOrGetter; activeThumbnail: Ref; } export declare type ThumbnailRadius = 'rounded' | 'circle'; 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 { }