import { ReactNode } from 'react'; import { Filters, FilterItem } from '../../interfaces'; import { TablePipeline } from '../pipeline'; export interface FilterFeatureOptions { /** (非受控用法) 默认的过滤字段列表 */ defaultFilters?: Filters; /** (受控用法) 过滤字段列表 */ filters?: Filters; /** 更新过滤字段列表的回调函数 */ onChangeFilters?(nextFilters: Filters, currentFilter: FilterItem): void; /** 是否保持 dataSource 不变 */ keepDataSource?: boolean; /** 过滤模式。单列过滤 single,多列过滤 multiple,默认为多选 */ mode?: 'single' | 'multiple'; /** 过滤图标 */ filterIcon?: ReactNode | ((filtered: boolean) => ReactNode); /** 是否对触发弹出过滤面板 的 click 事件调用 event.stopPropagation() */ stopClickEventPropagation?: boolean; /** 是否对按ESC键时关闭面板的 keydown 事件调用 event.stopPropagation() */ stopESCKeyDownEventPropagation?: boolean; /** 是否隐藏过滤面板的header区域 */ hideFilterPopupHeader?: boolean; /** 指定过滤面板渲染的父节点 */ getPopupParent?: (triggerElement: HTMLElement) => HTMLElement; } export declare function filter(opts?: FilterFeatureOptions): (pipeline: TablePipeline) => TablePipeline;