import { type ExprValue } from '../types/expr-value'; import { ExpressionDef } from '../types/expression-def'; import type { FieldPropStatement } from '../types/field-prop-statement'; import type { FieldSpace } from '../types/field-space'; import { GroupedBy } from './grouped_by'; export declare class ExprProps extends ExpressionDef { readonly expr: ExpressionDef; readonly statements: FieldPropStatement[]; elementType: string; legalChildTypes: import("../../../model/malloy_types").TypeDesc[]; constructor(expr: ExpressionDef, statements: FieldPropStatement[]); private getFilteredExpression; getExpression(fs: FieldSpace): ExprValue; getGroupedBys(fs: FieldSpace, expr: ExprValue, groupedBys: GroupedBy[]): { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "string"; bucketFilter?: string; bucketOther?: string; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "date"; timeframe?: import("../../../model/malloy_types").DateUnit; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "timestamp"; timeframe?: import("../../../model/malloy_types").TimestampUnit; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "number"; numberType?: "integer" | "float"; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "boolean"; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "json"; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "sql native"; rawType?: string; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "error"; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "array"; elementTypeDef: Exclude; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "record"; fields: import("../../../model/malloy_types").FieldDef[]; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "array"; elementTypeDef: import("../../../model/malloy_types").RecordElementTypeDef; fields: import("../../../model/malloy_types").FieldDef[]; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: import("../../../model/malloy_types").NonAtomicType; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "turtle"; pipeline: import("../../../model/malloy_types").PipeSegment[]; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "date"; timeframe?: "day" | "week" | "month" | "quarter" | "year" | undefined; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; } | { requiresGroupBy: import("../../../model/malloy_types").RequiredGroupBy[] | undefined; type: "timestamp"; timeframe?: import("../../../model/malloy_types").TimestampUnit; expressionType: import("../../../model/malloy_types").ExpressionType; evalSpace: import("../../../model/malloy_types").EvalSpace; fieldUsage: import("../../../model/malloy_types").FieldUsage[]; ungroupings?: import("../../../model/malloy_types").AggregateUngrouping[]; value: import("../../../model/malloy_types").Expr; morphic?: { [x: string]: import("../../../model/malloy_types").Expr; }; }; }