/**
 * @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 { Data, Record, Mode } from './transfer';
export interface TransferModelProps {
    data: Data;
    formatter: (record: Record) => React.ReactNode;
    title: React.ReactNode;
    searchable: boolean;
    searchPlaceholder: string;
    noDataDescription: React.ReactNode;
    noDataImg: string;
    noDataImgStyle: React.CSSProperties;
    onChange: (indexs: React.ReactText[]) => void;
    listStyle: React.CSSProperties;
    footer: React.ReactNode;
    selectedIndexs: React.ReactText[];
    onSearch: (value: string, mode: Mode) => void;
    filterOption: (data: Data, searchVal: string, mode: Mode) => Data;
    mode: Mode;
    disabled: boolean;
}
export interface TransferModelState {
    searchVal: string;
    selectAll: boolean;
    renderData: Data;
}
declare class TransferModel extends React.PureComponent<TransferModelProps, TransferModelState> {
    static propTypes: {
        data: PropTypes.Validator<any[]>;
        formatter: PropTypes.Requireable<(...args: any[]) => any>;
        title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        searchable: PropTypes.Requireable<boolean>;
        searchPlaceholder: PropTypes.Requireable<string>;
        noDataDescription: PropTypes.Requireable<string>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        listStyle: PropTypes.Requireable<object>;
        footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        selectedIndexs: PropTypes.Requireable<any[]>;
        onSearch: PropTypes.Requireable<(...args: any[]) => any>;
        filterOption: PropTypes.Requireable<(...args: any[]) => any>;
        mode: PropTypes.Requireable<string>;
        disabled: PropTypes.Requireable<boolean>;
    };
    constructor(props: TransferModelProps);
    private getFilterRenderData;
    private onSearchInputChangeHandler;
    private onSelectAllChangeHandler;
    private selectItemHandler;
    componentDidUpdate(preProps: TransferModelProps): void;
    render(): JSX.Element;
}
export default TransferModel;
