import { type ReactNode } from "react";
import { TableApi } from "../../logic/table-api.js";
import type { DataType, ObjectSetTableConfig } from "../../types.js";
import { type TableState } from "./table-reducer.js";
interface TableContextValue<T extends DataType = DataType> {
    config: ObjectSetTableConfig<T>;
    state: TableState<T>;
    api: TableApi<T>;
}
interface TableProviderProps<T extends DataType = DataType> {
    children: ReactNode;
    /**
     * Augmented table config adding default values for missing properties
     */
    config: ObjectSetTableConfig<T>;
    /**
     * Ref to the table element
     */
    tableRef: React.RefObject<HTMLTableElement>;
}
declare const TableProvider: <T extends DataType>({ children, config, tableRef, }: TableProviderProps<T>) => import("react/jsx-runtime").JSX.Element;
declare const useInternalTableState: <T extends DataType = any>() => TableContextValue<T>;
export { TableProvider, useInternalTableState };
//# sourceMappingURL=table-provider.d.ts.map