import * as React from 'react';
import List from './list';
import Operation from './operation';
import Search from './search';
export interface TransferItem {
    key: number | string;
    title: string;
    description?: string;
    chosen: boolean;
}
export interface TransferProps {
    dataSource: Array<TransferItem>;
    render?: (record: TransferItem) => any;
    targetKeys: Array<string>;
    onChange?: (targetKeys: Array<TransferItem>, direction: string, moveKeys: any) => void;
    listStyle?: React.CSSProperties;
    className?: string;
    prefixCls?: string;
    titles?: Array<string>;
    operations?: Array<string>;
    showSearch?: boolean;
    searchPlaceholder?: string;
    notFoundContent?: React.ReactNode | string;
    footer?: (props: any) => any;
    style?: React.CSSProperties;
    filterOption: (filterText: any, item: any) => boolean;
    body?: (props: any) => any;
}
export default class Transfer extends React.Component<TransferProps, any> {
    static List: typeof List;
    static Operation: typeof Operation;
    static Search: typeof Search;
    static defaultProps: {
        prefixCls: string;
        dataSource: any[];
        render: () => void;
        targetKeys: any[];
        onChange: () => void;
        titles: string[];
        operations: any[];
        showSearch: boolean;
        body: () => void;
        footer: () => void;
    };
    static propTypes: {
        prefixCls: React.Requireable<any>;
        dataSource: React.Requireable<any>;
        render: React.Requireable<any>;
        targetKeys: React.Requireable<any>;
        onChange: React.Requireable<any>;
        height: React.Requireable<any>;
        listStyle: React.Requireable<any>;
        className: React.Requireable<any>;
        titles: React.Requireable<any>;
        operations: React.Requireable<any>;
        showSearch: React.Requireable<any>;
        filterOption: React.Requireable<any>;
        searchPlaceholder: React.Requireable<any>;
        notFoundContent: React.Requireable<any>;
        body: React.Requireable<any>;
        footer: React.Requireable<any>;
        rowKey: React.Requireable<any>;
    };
    splitedDataSource: any;
    constructor(props: any);
    componentWillReceiveProps(nextProps: any): void;
    splitDataSource(props: any): any;
    moveTo: (direction: any) => void;
    moveToLeft: () => void;
    moveToRight: () => void;
    handleSelectAll: (direction: any, filteredDataSource: any, checkAll: any) => void;
    handleLeftSelectAll: (filteredDataSource: any, checkAll: any) => void;
    handleRightSelectAll: (filteredDataSource: any, checkAll: any) => void;
    handleFilter: (direction: any, e: any) => void;
    handleLeftFilter: (e: any) => void;
    handleRightFilter: (e: any) => void;
    handleClear: (direction: any) => void;
    handleLeftClear: () => void;
    handleRightClear: () => void;
    handleSelect: (direction: any, selectedItem: any, checked: any) => void;
    handleLeftSelect: (selectedItem: any, checked: any) => void;
    handleRightSelect: (selectedItem: any, checked: any) => void;
    render(): JSX.Element;
}
