export type RowReorderInstruction = 'reorder-above' | 'reorder-below';
export declare function applyReorder<T>(rows: ReadonlyArray<T>, sourceIndex: number, targetIndex: number, position: RowReorderInstruction): ReadonlyArray<T>;
export interface UseRowReorderOptions {
    onReorder: (sourceId: string, targetId: string, position: RowReorderInstruction) => void;
    isEnabled: () => boolean;
}
export interface RowReorderApi {
    setRow: (rowId: string, el: HTMLElement | null) => void;
    setHandle: (rowId: string, el: HTMLElement | null) => void;
    instructionFor: (rowId: string) => RowReorderInstruction | null;
}
export declare function useRowReorder(options: UseRowReorderOptions): RowReorderApi;
