import { ReactNode } from 'react';
import { MotionProps } from 'motion/react';
import { TableCellClassName, TableExpandedRowAnimation, TableRowClassName, TableRowData, TableVerticalAlign, TableViewType } from '../Table.types';
import { TableViewCardClasses } from '../model/tableView.types';
/**
 * Render-facing table configuration.
 *
 * These values come from public table props and are forwarded into row/cell/header
 * components during rendering. They are separate from the normalized render model,
 * which lives in `TableRenderContext`.
 */
export type TableRenderConfigContextValue<RowType extends TableRowData> = {
    viewType: TableViewType;
    isTableView: boolean;
    cardClasses: TableViewCardClasses;
    noRowsState: ReactNode;
    rowKey?: keyof RowType | ((row: RowType, rowIndex: number) => string | number);
    rowClassName?: TableRowClassName<RowType>;
    cellClassName?: TableCellClassName<RowType>;
    selectionCheckboxVerticalAlignment?: TableVerticalAlign;
    rowAnimationProps?: MotionProps | ((row: RowType, rowIndex: number) => MotionProps);
    expandedRowAnimation?: TableExpandedRowAnimation;
    virtualizedRows?: boolean;
    virtualizationOverscan?: number;
};
export declare const TableRenderConfigContext: import('react').Context<TableRenderConfigContextValue<TableRowData> | null>;
export declare const useOptionalTableRenderConfigContext: <RowType extends TableRowData>() => TableRenderConfigContextValue<RowType> | null;
export declare const useTableRenderConfigContext: <RowType extends TableRowData>() => TableRenderConfigContextValue<RowType>;
