/*!
 * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */
import { MRT_Row, MRT_RowData, MRT_TableInstance } from "material-react-table";
import { Dispatch, KeyboardEvent, SetStateAction } from "react";
import { DataTableProps } from "./DataTable.js";
export declare const useRowReordering: <TData extends MRT_RowData>({ totalRows, onReorderRows, data, setData, draggingRow, setDraggingRow, resultsPerPage, page, }: {
    data: TData[];
    draggingRow?: MRT_Row<TData> | null;
    onReorderRows: DataTableProps["onReorderRows"];
    page: number;
    resultsPerPage: number;
    setData: Dispatch<SetStateAction<TData[]>>;
    setDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null | undefined>>;
    totalRows: DataTableProps["totalRows"];
}) => {
    dragHandleStyles: {
        padding: string;
        borderRadius: string;
        "&:focus-visible": {
            boxShadow: string;
            outline: string;
            outlineOffset: string;
        };
    };
    dragHandleText: {
        title: string;
        "aria-label": string;
    };
    draggableTableBodyRowClassName: ({ currentRowId, draggingRowId, hoveredRowId, }: {
        currentRowId: string;
        draggingRowId?: string;
        hoveredRowId?: string;
    }) => "isDragging" | "isDragTarget" | "isDragging isDragTarget" | undefined;
    handleDragHandleKeyDown: ({ table, row, event, }: {
        event: KeyboardEvent<HTMLButtonElement>;
        row: MRT_Row<TData>;
        table: MRT_TableInstance<TData>;
    }) => void;
    handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;
    handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;
    resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;
    updateRowOrder: ({ rowId, newRowIndex, }: {
        newRowIndex: number;
        rowId: string;
    }) => void;
};
//# sourceMappingURL=useRowReordering.d.ts.map