/*!
 * Copyright (c) 2024-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 { CSSObject } from "@emotion/styled";
import { MRT_Row, MRT_RowData, MRT_RowSelectionState, MRT_TableInstance } from "material-react-table";
import { Dispatch, ReactNode, SetStateAction } from "react";
import { TableLayoutProps, TableState, UniversalProps } from "./componentTypes.js";
export type TableLayoutContentProps<TData extends MRT_RowData> = {
    columns: TableLayoutProps<TData>["columns"];
    data: TData[];
    draggingRow?: MRT_Row<TData> | null;
    emptyState: ReactNode;
    enableVirtualization?: boolean;
    getRowId: UniversalProps<TData>["getRowId"];
    hasRowReordering: UniversalProps<TData>["hasRowReordering"];
    hasRowSelection: UniversalProps<TData>["hasRowSelection"];
    isEmpty?: boolean;
    isLoading: boolean;
    isNoResults?: boolean;
    isRowReorderingDisabled?: boolean;
    onReorderRows: UniversalProps<TData>["onReorderRows"];
    pagination: {
        pageIndex: number;
        pageSize: number;
    };
    rowReorderingUtilities: {
        draggableTableBodyRowClassName: ({ currentRowId, draggingRowId, hoveredRowId, }: {
            currentRowId: string;
            draggingRowId?: string;
            hoveredRowId?: string;
        }) => string | undefined;
        dragHandleStyles: CSSObject;
        dragHandleText: {
            "aria-label": string;
            title: string;
        };
        handleDragHandleKeyDown: ({ table, row, event, }: {
            event: React.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;
    };
    rowSelection: MRT_RowSelectionState;
    setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;
    setTableState: Dispatch<SetStateAction<TableState>>;
    tableLayoutOptions: TableLayoutProps<TData>;
    tableState: TableState;
    totalRows: UniversalProps<TData>["totalRows"];
};
type TableLayoutContentComponent = (<TData extends MRT_RowData>(props: TableLayoutContentProps<TData>) => JSX.Element) & {
    displayName?: string;
};
declare const MemoizedTableLayoutContent: TableLayoutContentComponent;
export { MemoizedTableLayoutContent as TableLayoutContent };
//# sourceMappingURL=TableLayoutContent.d.ts.map