import { Direction, GroupBy, Limit, Offset, OrderBy, Where } from "./clause"; import { Bool, Cmp, Field } from "./expr"; import { IS_EMPTY, Fragment } from "./util"; export interface Parts { groupBy: GroupBy; limit: Limit; offset: Offset; orderBy: OrderBy; select: Select; where: Where; } export declare class Builder { private readonly parts; constructor(select: Select); static isBuilder(value: unknown): value is Builder; groupBy(field: Field | Field[], having?: Bool | Cmp): Builder; limit(size: bigint | number): Builder; offset(size: bigint | number): Builder; orderBy(field: Field | Field[], direction?: Direction): Builder; select(...fields: (Field | Select)[]): Builder; toString(): string; where(condition: Bool | Cmp): Builder; } export declare class Select implements Fragment { private readonly object?; private readonly fields; private constructor(); static from(object: string): Select; static isSelect(value: unknown): value is Select; [IS_EMPTY](): boolean; concat({ fields }: Select): Select; select(...fields: (Field | Select)[]): Select; toString(): string; }