import { FilterItem } from './FilterItem'; export declare class FilterGroup { logic: string; joinEntity: string; /** * The list of filters in this group */ filterList: FilterItem[]; /** * constructs a new FilterGroup * A FilterGroup contains a list of Filters that is "joined" the the parent Request * FilterGroup[0] is a special filter group in that it is "part" of the parent Request * and sets the universe against which all other FilterGroups are applied. * @param logic boolean logic (And, Or, AndNot, OrNot) to concatenate this filter group to the previous filter group * @param joinEntity in Group/Select requests, where there can be multiple primary entities, it specifies which primary entity is directly joined to this filter group * @param filterList the list of filters in this group */ constructor(logic?: string, joinEntity?: any, filterList?: any[]); setFilterGroupLogic(logic: any): this; getFilterGroupLogic(): string; setFilterGroupJoinEntity(joinEntity: any): this; getFilterGroupJoinEntity(): string; /** * returns the reference to the underlying filterList array */ getFilterModel(): FilterItem[]; addFilterItem(filter: any): this; /** * removes the filter from filterList (compare by reference) * @param filter */ removeFilterItem(filter: any): this; /** * calls clearSelected on each filter */ clearFilter(): void; /** * returns the json object represents this filter group */ toJSON(): { EntityType: string; PropertyName: string; DataType: string; Logic: string; Operator: string; Values: any; }[]; getFilterValue(): { EntityType: string; PropertyName: string; DataType: string; Logic: string; Operator: string; Values: any; }[]; } export declare function createFilterGroup(logic: string, joinEntity?: string, filterList?: any[]): FilterGroup;