import * as React from 'react';
import { Key, RenderExpandIcon, TableStore, Cell, FixedType, GetRowKey, RenderRows, ExpandedRowRender } from './interface';
import ColumnManager from './ColumnManager';
export declare type RenderTableRows<ValueType> = (renderRows: RenderRows<ValueType>, rows: React.ReactElement[], record: ValueType, index: number, indent: number, fixed: FixedType, parentKey: Key, ancestorKeys: Key[]) => void;
export declare type ExpandChangeEventHandler<ValueType> = (expanded: boolean, record: ValueType, event: React.MouseEvent<HTMLElement>, rowKey: Key, destroy: boolean) => void;
export declare type RenderExpandIndentCell = (rows: Cell[][], fixed: FixedType) => void;
export declare type ExpandEventHandler<ValueType> = (expanded: boolean, record: ValueType) => void;
export interface ExpandableTableProps<ValueType> {
    expandIconAsCell?: boolean;
    expandedRowKeys?: Key[];
    expandedRowClassName?: (record: ValueType, index: number, indent: number) => string;
    defaultExpandAllRows?: boolean;
    defaultExpandedRowKeys?: Key[];
    expandIconColumnIndex?: number;
    expandedRowRender?: ExpandedRowRender<ValueType>;
    expandIcon?: RenderExpandIcon<ValueType>;
    childrenColumnName?: string;
    indentSize?: number;
    onExpand?: ExpandEventHandler<ValueType>;
    onExpandedRowsChange?: (expandedKeys: Key[]) => void;
    columnManager: ColumnManager;
    store: TableStore;
    prefixCls: string;
    data?: ValueType[];
    children: (info: {
        props: ExpandableTableProps<ValueType>;
        needIndentSpaced: boolean;
        renderRows: RenderTableRows<ValueType>;
        handleExpandChange: ExpandChangeEventHandler<ValueType>;
        renderExpandIndentCell: RenderExpandIndentCell;
    }) => React.ReactNode;
    getRowKey: GetRowKey<ValueType>;
}
declare const _default: any;
export default _default;