import * as React from 'react'; import { ReactNode } from 'react'; import './TS_ListOrganizer.scss'; import { ComponentSync } from '../../core/ComponentSync.js'; type State = { items: T[]; }; export type TS_ListOrganizer_RendererProps = { item: T; index: number; dragged: boolean; onDragStart: (e: React.DragEvent, itemIndex: number) => void; onDragOver: (e: React.DragEvent, itemIndex: number) => void; onDragLeave: (e: React.DragEvent, itemIndex: number) => void; onDragEnd: (e: React.MouseEvent) => void; }; type Props = { items: T[]; renderer: (props: TS_ListOrganizer_RendererProps) => ReactNode; onOrderChanged: (items: T[]) => void | Promise; }; export declare class TS_ListOrganizer extends ComponentSync, State> { private draggedItemIndex; private lockRowIndex; private activeDrag; protected deriveStateFromProps(nextProps: Props, state: State): State; onDragStart: (e: React.DragEvent, rowIndex: number) => void; onDragOver: (e: React.MouseEvent, rowIndex: number) => void; onDragEnd: (e: React.MouseEvent) => void; onDragLeave: (e: React.MouseEvent, rowIndex: number) => void; render(): import("react/jsx-runtime").JSX.Element; } export {};