import React from "react"; import DataList from "./data-list"; import { Dayjs } from "dayjs"; interface FilterItemPorps { label?: string; defaultValue?: any; onChange?: (value: any) => void; } declare abstract class FilterItem extends React.Component { abstract renderInner(): React.ReactNode; abstract get expression(): string | null; protected value: T["defaultValue"] | undefined; render(): React.ReactNode; } export type FilterOption = { label: string; value: any; disabled?: boolean; }; export interface FilterGroupProps extends FilterItemPorps { field?: string; options?: FilterOption[]; } export declare class FilterGroup extends FilterItem { private valueMap; private normalizedOptions; private defaultSegValue; constructor(props: FilterGroupProps); get expression(): string | null; renderInner(): React.ReactNode; } export interface FilterSelectProps extends FilterItemPorps { field?: string; placeholder?: string; options?: FilterOption[]; multiple?: boolean; } export declare class FilterSelect extends FilterItem { /** 空串 / 空值代表“未选择”,须按 undefined 交给 Select,否则 rc-select 会当成一个空值选项而顶掉 placeholder */ private get selectValue(); renderInner(): React.ReactNode; get expression(): string | null; } export interface FilterSearchProps extends FilterItemPorps { placeholder?: string; fields?: string[]; } export declare class FilterSearch extends FilterItem { constructor(props: FilterSearchProps); buildLikeGroup(fields: string[] | undefined, keyword: string): string | undefined; get expression(): string | null; renderInner(): React.ReactNode; } export interface FilterDateRangeProps extends FilterItemPorps { field?: string; } export declare class FilterDateRange extends FilterItem { renderDateRangeValue(value: any): [Dayjs | undefined, Dayjs | undefined] | undefined; isEmptyFilterValue(value: any): boolean; formatDateString(value: any): string; get expression(): string | null; renderInner(): React.ReactNode; } export interface FilterBarProps { children?: React.ReactNode; } export declare class FilterBar extends React.Component { private filterItems; static contextType: React.Context | null>; context: DataList | null; search(): void; rebuildChildren(): React.ReactElement>[]; render(): React.ReactNode; } export {};