import React from 'react';
import { DropdownProps } from '../dropdown';
import { FilterIcon, Filter, OnFilterDropdownVisibleChange, RenderFilterDropdownItem } from './interface';
export default function ColumnFilter(props?: ColumnFilterProps): React.ReactElement;
export interface ColumnFilterProps extends Omit<RenderDropdownProps, keyof RenderFilterDropdownProps> {
    prefixCls?: string;
    filteredValue?: any[];
    filterIcon?: FilterIcon;
    filterDropdown?: React.ReactElement;
    filterDropdownProps?: FilterDropdownProps;
    filters?: Filter[];
}
export interface RenderDropdownProps extends FilterDropdownProps, RenderFilterDropdownProps {
    filterMultiple?: boolean;
    filters?: Filter[];
    filteredValue?: any[];
    filterDropdownVisible?: boolean;
    onSelect?: (data: OnSelectData) => void;
    onFilterDropdownVisibleChange?: OnFilterDropdownVisibleChange;
    renderFilterDropdown?: (props?: RenderFilterDropdownProps) => React.ReactNode;
    renderFilterDropdownItem?: RenderFilterDropdownItem;
}
export interface FilterDropdownProps extends Omit<DropdownProps, 'render' | 'onVisibleChange'> {
}
export interface OnSelectData {
    value?: any;
    /** only this value is used now  */
    filteredValue: any;
    included?: boolean;
    domEvent?: React.MouseEvent<HTMLElement>;
}
export interface RenderFilterDropdownProps {
    /** temporary filteredValue  */
    tempFilteredValue: any[];
    /** set temporary filteredValue  */
    setTempFilteredValue: (tempFilteredValue: any[]) => void;
    /** set tempFilteredValue to filteredValue. You can also pass filteredValue to directly set the filteredValue  */
    confirm: (props?: {
        closeDropdown?: boolean;
        filteredValue?: any[];
    }) => void;
    /** clear tempFilteredValue and filteredValue  */
    clear: (props?: {
        closeDropdown?: boolean;
    }) => void;
    /** close dropdown  */
    close: () => void;
    /** column filters  */
    filters?: RenderDropdownProps['filters'];
}
