import { IS_EMPTY, Fragment } from "./util"; export declare type Expr = Bool | Cmp; export declare type Field = string | Fn; export declare type Scalar = bigint | boolean | null | number | string; export declare class Bool implements Fragment { private readonly operator; private readonly value; private constructor(); static and(...value: Expr[]): Bool; static or(...value: Expr[]): Bool; [IS_EMPTY](): boolean; toString(): string; } export declare class Cmp implements Fragment { private readonly field; private readonly operator; private readonly expression; private constructor(); static eq(field: Field, expression: Scalar): Cmp; static gt(field: Field, expression: Scalar): Cmp; static gte(field: Field, expression: Scalar): Cmp; static in(field: Field, expression: Scalar[]): Cmp; static like(field: Field, expression: string): Cmp; static lt(field: Field, expression: Scalar): Cmp; static lte(field: Field, expression: Scalar): Cmp; static ne(field: Field, expression: Scalar): Cmp; static notIn(field: Field, expression: Scalar[]): Cmp; [IS_EMPTY](): boolean; toString(): string; } export declare class Fn implements Fragment { private readonly ident; private readonly field?; private constructor(); static avg(field: string): Fn; static calendarMonth(field: string): Fn; static calendarQuarter(field: string): Fn; static calendarYear(field: string): Fn; static convertTimezone(field: string): Fn; static count(field?: string): Fn; static countDistinct(field?: string): Fn; static dayInMonth(field: string): Fn; static dayInWeek(field: string): Fn; static dayInYear(field: string): Fn; static dayOnly(field: string): Fn; static fiscalMonth(field: string): Fn; static fiscalQuarter(field: string): Fn; static fiscalYear(field: string): Fn; static hourInDay(field: string): Fn; static max(field: string): Fn; static min(field: string): Fn; static sum(field: string): Fn; static weekInMonth(field: string): Fn; static weekInYear(field: string): Fn; [IS_EMPTY](): boolean; toString(): string; }