/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import * as PropTypes from 'prop-types';
import { Record } from './table';
import { Filter } from './table-filter';
export declare type DataIndex = React.ReactText;
export declare type SortMode = 'asc' | 'desc';
export interface TableColumnProps {
    title: React.ReactNode;
    dataIndex: DataIndex;
    width?: React.ReactText;
    align?: 'left' | 'right' | 'center';
    fixed?: 'left' | 'right';
    className?: string;
    children: TableColumnProps[];
    headerCellAttr?: (dataIndex: DataIndex) => React.Attributes;
    filterable?: boolean;
    filtered?: boolean;
    filterValues?: React.ReactText[];
    filters?: Filter[] | React.ReactText[];
    filterMultiple?: boolean;
    filterMethod?: (dataIndex: DataIndex, values: React.ReactText[]) => any;
    sorted?: boolean;
    sortMode?: SortMode;
    sortable?: boolean;
    sortMethod?: (dataIndex: DataIndex, mode: SortMode) => any;
    cellAttr?: (dataIndex: DataIndex, record: Record) => React.Attributes;
    render?: (value: any, dataIndex: DataIndex, record: Record) => React.ReactNode;
}
declare class TableColumn extends React.PureComponent<TableColumnProps, any> {
    static propTypes: {
        title: PropTypes.Validator<PropTypes.ReactNodeLike>;
        dataIndex: PropTypes.Validator<string | number>;
        width: PropTypes.Requireable<string | number>;
        align: PropTypes.Requireable<string>;
        fixed: PropTypes.Requireable<string>;
        className: PropTypes.Requireable<string>;
        children: PropTypes.Requireable<any[]>;
        headerCellAttr: PropTypes.Requireable<(...args: any[]) => any>;
        filterable: PropTypes.Requireable<boolean>;
        filtered: PropTypes.Requireable<boolean>;
        filterValues: PropTypes.Requireable<any[]>;
        filters: PropTypes.Requireable<any[]>;
        filterMultiple: PropTypes.Requireable<boolean>;
        filterMethod: PropTypes.Requireable<(...args: any[]) => any>;
        sorted: PropTypes.Requireable<boolean>;
        sortMode: PropTypes.Requireable<string>;
        sortable: PropTypes.Requireable<boolean>;
        sortMethod: PropTypes.Requireable<(...args: any[]) => any>;
        cellAttr: PropTypes.Requireable<(...args: any[]) => any>;
        render: PropTypes.Requireable<(...args: any[]) => any>;
    };
}
export default TableColumn;
