import React, { ReactNode } from 'react';
import TableStore from './TableStore';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
import { DragRender, expandedRowRendererProps, onColumnResizeProps, onRowProps } from './Table';
import { SelectionMode } from './enum';
import { SpinProps } from '../spin';
export interface TableContextProviderProps {
    code?: string;
    prefixCls?: string;
    pristine?: boolean;
    tableStore: TableStore;
    dataSet: DataSet;
    indentSize: number;
    selectionMode?: SelectionMode;
    onRow?: (props: onRowProps) => object;
    onColumnResize?: (props: onColumnResizeProps) => void;
    rowRenderer?: (record: Record, index: number) => object;
    expandedRowRenderer?: (props: expandedRowRendererProps) => ReactNode;
    expandRowByClick?: boolean;
    rowDragRender?: DragRender;
    columnsDragRender?: DragRender;
    isTree?: boolean;
    showSelectionCachedButton?: boolean;
    onShowCachedSelectionChange?: (showCachedSelection: boolean) => void;
    autoMaxWidth?: boolean;
    summary?: string;
    virtualSpin?: boolean;
    spinProps?: SpinProps;
    fullColumnWidth?: boolean;
}
export interface TableContextValue extends TableContextProviderProps {
    border?: boolean;
    columnEditorBorder?: boolean;
    aggregation?: boolean;
    inlineEdit?: boolean;
    checkField?: string;
    expandIconAsCell?: boolean;
    canTreeLoadData?: boolean;
    parityRow?: boolean;
    rowHeight: 'auto' | number;
}
declare const TableContext: React.Context<TableContextValue>;
declare const ObserverTableContextProvider: React.FunctionComponent<TableContextProviderProps>;
export default TableContext;
export { ObserverTableContextProvider as TableContextProvider, };
