import React, { Component, Key } from 'react';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
import { onColumnResizeProps, TableProps } from '../table/Table';
import { SelectionMode } from '../table/enum';
import { DataSetSelection } from '../data-set/enum';
import { LovConfig } from './Lov';
import { ColumnProps } from '../table/Column';
import { modalChildrenProps } from '../modal/interface';
export interface LovViewProps {
    dataSet: DataSet;
    config: LovConfig;
    tableProps?: Partial<TableProps>;
    multiple: boolean;
    values: any[];
    popup?: boolean;
    onSelect: (records: Record | Record[]) => void;
    onBeforeSelect?: (records: Record | Record[]) => boolean | undefined;
    modal?: modalChildrenProps;
    popupHidden?: boolean;
}
export default class LovView extends Component<LovViewProps> {
    selection: DataSetSelection | false;
    selectionMode: SelectionMode | undefined;
    resizedColumns: Map<Key, number>;
    componentWillMount(): void;
    componentWillUnmount(): void;
    shouldComponentUpdate(nextProps: Readonly<LovViewProps>): boolean;
    getColumns(): ColumnProps[] | undefined;
    handleSelect(event?: React.MouseEvent): boolean;
    handleKeyDown(e: any): void;
    /**
     * 单选 onRow 处理
     * @param props
     */
    handleRow(props: any): {
        onDoubleClick: (event?: React.MouseEvent<Element, MouseEvent> | undefined) => boolean;
    };
    handleSingleRow(): {
        onClick: (event?: React.MouseEvent<Element, MouseEvent> | undefined) => boolean;
    };
    handleColumnResize(props: onColumnResizeProps): void;
    render(): JSX.Element;
}
