import DateRange from '../../date-range-picker/models/date-range'; import { BooleanOperator, FilterOperator, FilterValue, ListOperator, NumberOperator, PropertyType, ResourceType, StringOperator } from './types'; import OperatorNode from './selector-tree/operator-node'; interface LabelPart { highlight: boolean; label: string; } export default class PropertyFilter { datasetId?: string; dataGroupId?: string; resourceType?: ResourceType; propertyName?: string; propertyDefaultType?: PropertyType; propertyType?: PropertyType; filterOperator?: FilterOperator; filterValue?: FilterValue; constructor(attributes?: Partial); createDateRange(attributes?: Partial): DateRange; getExpressionTree(): OperatorNode; hasSelectedProperty(): boolean; getAttributes(): Partial; equals(otherFilter: PropertyFilter): boolean; isValid(): boolean; clonePropertyFilter(newAttributes: Partial): this; setDateRange(dateRange: DateRange): this; setAttribute(key: keyof PropertyFilter, value: any): this; getLabel(): string; getLabelParts(): Array; getPropertyTypes(): Array; getBooleanOperators(): Array; getListOperators(): Array; getNumberOperators(): Array; getStringOperators(): Array; getFilterOperators(): Array; private getPropertyNode; private getValueOperatorNode; private getBetweenOperatorExpressionTree; private getDefaultFilterAttributes; } export {};