import type { StickyStartState, UseColumnOptionsResult } from "../hooks/useColumnOptions";
import type { UseTableItemsReturn } from "../hooks/useTableItems";
import type { UseTableSelectionReturn } from "../hooks/useTableSelection";
import type { UseTableSortResults } from "../hooks/useTableSort";
import type { DataTableLoadingConfig } from "./DataGridTable.types";
type DataTableContextProps<T> = {
    layout: "fixed" | "auto";
    withKeyboardNav: boolean;
    selectionState: UseTableSelectionReturn;
    stickyStart: StickyStartState;
    stickyHeader: boolean;
    tableId: string;
    loading: DataTableLoadingConfig | undefined;
    onRowAction?: ({ row, id, event, }: {
        row: T;
        id: string;
        event: React.MouseEvent<HTMLTableRowElement>;
    }) => void;
    columns: UseColumnOptionsResult<T>["columns"];
    /**
     * Used to set exact colspan for detailsPanel, loadingState and emptyState.
     * This is necessary to ensure that these components span the entire width of the table.
     */
    totalColSpan: number;
    /**
     * The current items and related metadata.
     */
    tableItems: UseTableItemsReturn<T>;
    sortingState: UseTableSortResults;
};
declare const DataTableContextProvider: import("react").FC<DataTableContextProps<any> & {
    children: React.ReactNode;
    ref?: never;
}>, useDataTableContext: <S extends boolean = true>(strict?: S | undefined, errorMessageOverride?: string) => S extends true ? DataTableContextProps<any> : DataTableContextProps<any> | undefined;
type DataTableLocation = "thead" | "tbody" | "tfoot";
declare const DataTableLocationProvider: import("react").FC<{
    location: DataTableLocation;
} & {
    children: React.ReactNode;
    ref?: never;
}>, useDataTableLocation: <S extends boolean = true>(strict?: S | undefined, errorMessageOverride?: string) => S extends true ? {
    location: DataTableLocation;
} : {
    location: DataTableLocation;
} | undefined;
export { DataTableContextProvider, DataTableLocationProvider, useDataTableContext, useDataTableLocation, };
