import type { BooleanFilter, FilterExpression, NumberFilter, StringFilter, TemporalFilter } from '@malloydata/malloy-filter'; import type { Dialect, QueryInfo } from '../dialect'; export declare const FilterCompilers: { compile(t: string, c: FilterExpression | null, x: string, d: Dialect, qi?: QueryInfo): string; numberCompile(nc: NumberFilter, x: string, d: Dialect): string; booleanCompile(bc: BooleanFilter, x: string, _d: Dialect): string; stringCompile(sc: StringFilter, x: string, d: Dialect): string; temporalCompile(tc: TemporalFilter, x: string, d: Dialect, t: "date" | "timestamp", qi?: QueryInfo): string; }; /** * I felt like there was enough "helpful functions needed to make everything * work, all of which need to know the dialect", to justify making a class * for this. Maybe this should just be a set of functions which take * a dialect as an argument? */ export declare class TemporalFilterCompiler { readonly expr: string; readonly timetype: 'timestamp' | 'date'; readonly d: Dialect; readonly qi: QueryInfo; constructor(expr: string, dialect: Dialect, timetype?: 'timestamp' | 'date', queryInfo?: QueryInfo); time(timeSQL: string): string; compile(tc: TemporalFilter): string; private expandLiteral; private literalNode; private nowExpr; private n; private delta; private dayofWeek; private nowDot; private thisUnit; private lastUnit; private nextUnit; mod7(n: string): string; private moment; private isIn; private weekdayMoment; }