import React, { PureComponent, ReactNode } from 'react';
import PropTypes from 'prop-types';
import Store from '@douyinfe/semi-foundation/lib/es/utils/Store';
import { TableContextProps } from '../table-context';
import { ColumnProps, ExpandIcon, TableComponents, Virtualized, Fixed } from '../interface';
export interface TableExpandedRowProps {
    cellWidths: number[];
    className?: string;
    columns?: ColumnProps[];
    components?: TableComponents;
    defaultExpandAllRows?: boolean;
    defaultExpandedRowKeys?: (string | number)[];
    expandIcon?: ExpandIcon;
    expandRowByClick?: boolean;
    expanded?: boolean;
    expandedRowKeys?: (string | number)[];
    expandedRowRender?: (record?: Record<string, any>, index?: number, expanded?: boolean) => ExpandedRowRenderReturnType;
    indentSize?: number;
    index?: number;
    prefixCls?: string;
    record?: Record<string, any>;
    renderExpandIcon?: (record?: Record<string, any>, isNested?: boolean) => ReactNode | null;
    store?: Store;
    style?: React.CSSProperties;
    virtualized?: Virtualized;
    displayNone?: boolean;
}
/**
 * Render expanded row
 */
export default class TableExpandedRow extends PureComponent<TableExpandedRowProps> {
    static contextType: React.Context<TableContextProps>;
    static propTypes: {
        cellWidths: PropTypes.Validator<any[]>;
        className: PropTypes.Requireable<string>;
        columns: PropTypes.Requireable<any[]>;
        components: PropTypes.Requireable<object>;
        defaultExpandAllRows: PropTypes.Requireable<boolean>;
        defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
        expandIcon: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
        expandRowByClick: PropTypes.Requireable<boolean>;
        expanded: PropTypes.Requireable<boolean>;
        expandedRowKeys: PropTypes.Requireable<any[]>;
        expandedRowRender: PropTypes.Requireable<(...args: any[]) => any>;
        indentSize: PropTypes.Requireable<number>;
        index: PropTypes.Requireable<NonNullable<string | number>>;
        onExpand: PropTypes.Requireable<(...args: any[]) => any>;
        onExpandedRowsChange: PropTypes.Requireable<(...args: any[]) => any>;
        prefixCls: PropTypes.Requireable<string>;
        record: PropTypes.Requireable<object>;
        renderExpandIcon: PropTypes.Requireable<(...args: any[]) => any>;
        store: PropTypes.Requireable<object>;
        style: PropTypes.Requireable<object>;
        virtualized: PropTypes.Requireable<NonNullable<boolean | object>>;
    };
    static defaultProps: {
        record: {};
        prefixCls: "semi-table";
    };
    context: TableContextProps;
    render(): React.JSX.Element;
}
export type ExpandedRowRenderReturnType = React.ReactNode | {
    children: ReactNode;
    fixed: Fixed;
} & ColumnProps;
