import { entityKind } from "../../entity.cjs"; import type { GelDialectConfig } from "../dialect.cjs"; import { GelDialect } from "../dialect.cjs"; import type { TypedQueryBuilder } from "../../query-builders/query-builder.cjs"; import type { ColumnsSelection, SQLWrapper } from "../../sql/sql.cjs"; import { WithSubquery } from "../../subquery.cjs"; import type { GelColumn } from "../columns/index.cjs"; import type { WithSubqueryWithSelection } from "../subquery.cjs"; import { GelSelectBuilder } from "./select.cjs"; import type { SelectedFields } from "./select.types.cjs"; export declare class QueryBuilder { static readonly [entityKind]: string; private dialect; private dialectConfig; constructor(dialect?: GelDialect | GelDialectConfig); $with(alias: TAlias): { as(qb: TypedQueryBuilder | ((qb: QueryBuilder) => TypedQueryBuilder)): WithSubqueryWithSelection; }; with(...queries: WithSubquery[]): { select: { (): GelSelectBuilder; (fields: TSelection): GelSelectBuilder; }; selectDistinct: { (): GelSelectBuilder; (fields: TSelection): GelSelectBuilder; }; selectDistinctOn: { (on: (GelColumn | SQLWrapper)[]): GelSelectBuilder; (on: (GelColumn | SQLWrapper)[], fields: TSelection): GelSelectBuilder; }; }; select(): GelSelectBuilder; select(fields: TSelection): GelSelectBuilder; selectDistinct(): GelSelectBuilder; selectDistinct(fields: TSelection): GelSelectBuilder; selectDistinctOn(on: (GelColumn | SQLWrapper)[]): GelSelectBuilder; selectDistinctOn(on: (GelColumn | SQLWrapper)[], fields: TSelection): GelSelectBuilder; private getDialect; }