import type { FilterCondition } from '../../../model/malloy_types'; import type { FieldReference } from '../query-items/field-references'; import type { ExpressionDef } from '../types/expression-def'; import type { FieldSpace } from '../types/field-space'; import { type Literal } from '../types/literal'; import { ListOf, MalloyElement } from '../types/malloy-element'; import type { QueryBuilder } from '../types/query-builder'; import type { QueryPropertyInterface } from '../types/query-property-interface'; import { LegalRefinementStage } from '../types/query-property-interface'; export declare class FilterElement extends MalloyElement { readonly expr: ExpressionDef; readonly exprSrc: string; elementType: string; constructor(expr: ExpressionDef, exprSrc: string); private getStableFilter; filterCondition(fs: FieldSpace): FilterCondition; filterExpressionFilter(): { reference: FieldReference; filterExpression: string; } | undefined; drillFilter(): { reference: FieldReference; value: Literal; } | undefined; } export declare class Filter extends ListOf implements QueryPropertyInterface { elementType: string; havingClause?: boolean; forceQueryClass: undefined; queryRefinementStage: LegalRefinementStage; set having(isHaving: boolean); protected checkedFilterCondition(fs: FieldSpace, filter: FilterElement): FilterCondition | undefined; getFilterList(fs: FieldSpace): FilterCondition[]; queryExecute(executeFor: QueryBuilder): void; }