import React, { Component } from 'react';
import { ColumnProps } from 'antd/lib/table';
import PropTypes from 'prop-types';
interface ISelectProps {
    mode: 'multiple' | 'tags';
}
interface ITableProps {
    dataSource: object[];
    rowKey: string;
    display: string;
    columns: ColumnProps<object>[];
}
type TSProps = {
    value: string | string[] | number;
    selectProps: ISelectProps;
    tableProps: ITableProps;
    onChange: (key: string | string[]) => void;
};
type TSState = {
    value: string | string[] | number;
    open: boolean;
    update: boolean;
    tableData: object[];
};
export default class TableSelect extends Component<TSProps, TSState> {
    static propTypes: {
        tableProps: PropTypes.Requireable<PropTypes.InferProps<{
            display: PropTypes.Validator<string>;
        }>>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        value: PropTypes.Requireable<NonNullable<string | number | any[] | null | undefined>>;
    };
    static defaultProps: {
        update: boolean;
    };
    lock: any;
    select: any;
    origValue: any;
    constructor(props: TSProps | Readonly<TSProps>);
    static getDerivedStateFromProps(nextProps: TSProps, prevState: TSState): {
        tableData: any;
        update?: undefined;
        value?: undefined;
    } | {
        update: boolean;
        tableData?: undefined;
        value?: undefined;
    } | {
        value: string | number | string[];
        tableData?: undefined;
        update?: undefined;
    } | null;
    setRef: (select: any) => void;
    onDropdownVisibleChange: (open: any) => void;
    clickRow: (record: object | null) => void;
    renderOptions: (data: object[]) => React.JSX.Element[];
    deselect: (val: string) => void;
    selectChange: (selectedRowKeys: any) => void;
    searchTable: (value: {
        toString: () => string;
    }) => void;
    render(): React.JSX.Element;
}
export {};
