import { Controller, type ElementPart, type HTMLTemplateResult, type PartInfo, type ReactiveElement } from '@a11d/lit'; import type { DataGrid } from './DataGrid.js'; import type { DataRecord } from './DataRecord.js'; export declare enum ReorderabilityState { Idle = "idle", Dragging = "dragging", DropBefore = "drop-before", DropAfter = "drop-after" } type ReorderabilityControllerItemDirectiveOptions = { readonly index: number; readonly disabled?: boolean; readonly dragImage?: HTMLTemplateResult; }; export declare class ReorderabilityController extends Controller { readonly host: ReactiveElement; readonly options: { handleReorder?: (source: number, destination: number) => void; }; constructor(host: ReactiveElement, options: { handleReorder?: (source: number, destination: number) => void; }); private readonly items; private draggingItem?; get item(): (options: ReorderabilityControllerItemDirectiveOptions) => import("lit-html/directive.js").DirectiveResult<{ new (partInfo: PartInfo): { host?: HTMLElement; part?: ElementPart; options?: ReorderabilityControllerItemDirectiveOptions; render(options: ReorderabilityControllerItemDirectiveOptions): symbol; update(part: ElementPart, [options]: [ReorderabilityControllerItemDirectiveOptions]): symbol; get state(): ReorderabilityState; disconnected(): void; reconnected(): void; addEventListeners(): void; removeEventListeners(): void; isConnected: boolean; _$initialize(part: import("lit-html").Part, parent: import("lit-html").Disconnectable, attributeIndex: number | undefined): void; setValue(value: unknown): void; get _$isConnected(): boolean; }; }>; handleEvent(e: DragEvent): void; private handleDragStart; private handleDropOver; private handleDrop; private handleDragEnd; protected handleReorder(source: number, destination: number): void; } export type DataGridReorderChange = { readonly type: 'move' | 'shift'; readonly record: DataRecord; readonly oldIndex: number; }; export declare class DataGridReorderabilityController extends ReorderabilityController { readonly host: DataGrid; constructor(host: DataGrid); get visible(): boolean | undefined; get enabled(): boolean | undefined; reorder(source: number, destination: number): void; protected handleReorder(source: number, destination: number): void; } export {}; //# sourceMappingURL=DataGridReorderabilityController.d.ts.map