import { TableHtmlAttributes, TableRowData, TableRowId } from '../Table.types';
export type TableSection = 'header' | 'body' | 'footer';
export type TableBodyContextValue = {
    nextRowIndex: () => number;
};
export type TableHeaderContextValue = {
    nextHeaderRowIndex: () => number;
};
export type TableHeaderRowContextValue = {
    row: number;
};
export type TableRenderRowContextValue = {
    nextColumnIndex: (explicitColumnIndex?: number, span?: number) => number;
    rowIndex: number;
    rowId: TableRowId;
    rowData: TableRowData;
};
export declare const TableSectionContext: import('react').Context<TableSection | null>;
export declare const TableBodyContext: import('react').Context<TableBodyContextValue | null>;
export declare const TableHeaderContext: import('react').Context<TableHeaderContextValue | null>;
export declare const TableHeaderRowContext: import('react').Context<TableHeaderRowContextValue | null>;
export declare const TableRowContext: import('react').Context<TableRenderRowContextValue | null>;
export declare const useOptionalTableSection: () => TableSection | null;
export declare const useTableBodyContext: () => TableBodyContextValue | null;
export declare const useTableHeaderContext: () => TableHeaderContextValue | null;
export declare const useTableHeaderRowContext: () => TableHeaderRowContextValue | null;
export declare const useTableRowContext: <RowType extends TableRowData>() => (Omit<TableRenderRowContextValue, "rowData"> & {
    rowData: RowType;
}) | null;
export declare const isTableHtmlAttribute: (key: string) => boolean;
export declare const extractTableHtmlAttributes: (props: Record<string, unknown>) => TableHtmlAttributes;
