///
import * as React from 'react';
import { ColumnProps, TableStateFilters } from './interface';
import { LabeledValue, OptionProps } from '../select';
export declare const VALUE_OR = "OR";
export interface FilterSelectProps {
prefixCls?: string;
placeholder?: string;
dataSource?: T[];
filters?: string[];
columnFilters?: TableStateFilters;
columns?: ColumnProps[];
onFilter?: (column: ColumnProps, nextFilters: string[]) => void;
onChange?: (filters?: any[]) => void;
onClear?: () => void;
multiple?: boolean;
getPopupContainer?: (triggerNode?: Element) => HTMLElement;
}
export interface FilterSelectState {
columns: ColumnProps[];
filters: string[];
columnFilters: TableStateFilters;
selectColumn?: ColumnProps;
inputValue: string;
checked: any[];
}
export default class FilterSelect extends React.Component, FilterSelectState> {
state: FilterSelectState;
rcSelect: any;
columnRefs: any;
componentWillReceiveProps(nextProps: FilterSelectProps): void;
getPrefixCls(): string;
handleDropdownMouseDown: (e: React.MouseEvent) => void;
render(): JSX.Element;
renderColumnsTitle(): JSX.Element[];
isMultiple(): boolean | undefined;
saveRef: (node: any) => void;
saveColumnRef: (key: string | number, node: any) => void;
handleInputKeyDown: (e: any) => void;
handleInput: (value: string) => void;
handleChoiceItemClick: ({ key }: LabeledValue) => void;
handleSelect: ({ key }: LabeledValue) => boolean;
handleMultiCheckConfirm: () => void;
handleChange: (changedValue: LabeledValue[]) => void;
fireChange(filters: any[]): void;
fireColumnFilterChange(columnKey: string | number, value: any[]): void;
changeValue(changedValue: LabeledValue[], oldValue: any[]): string[];
getColumnFiltersValues(): any[];
getValue(): ("" | {
key: string;
label: ({} | null | undefined)[];
})[];
getInputFilterOptions(inputValue: string): React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>[];
getOptions(): any[] | null | undefined;
getColumnsWidthFilters(props?: Readonly> & Readonly<{
children?: React.ReactNode;
}>): ColumnProps[];
findColumn(myKey: string | number): ColumnProps | undefined;
toValueString: (item: any) => "" | {
key: string;
label: ({} | null | undefined)[];
};
getRootDomNode: () => HTMLElement;
getColumnTitle(column: ColumnProps): string;
}