import { entityKind } from "../../entity.js"; import type { PgDialectConfig } from "../dialect.js"; import { PgDialect } from "../dialect.js"; import type { SQLWrapper } from "../../sql/sql.js"; import { WithSubquery } from "../../subquery.js"; import type { PgColumn } from "../columns/index.js"; import type { WithBuilder } from "../subquery.js"; import { PgSelectBuilder } from "./select.js"; import type { SelectedFields } from "./select.types.js"; export declare class QueryBuilder { static readonly [entityKind]: string; private dialect; private dialectConfig; constructor(dialect?: PgDialect | PgDialectConfig); $with: WithBuilder; with(...queries: WithSubquery[]): { select: { (): PgSelectBuilder; (fields: TSelection): PgSelectBuilder; }; selectDistinct: { (): PgSelectBuilder; (fields: TSelection): PgSelectBuilder; }; selectDistinctOn: { (on: (PgColumn | SQLWrapper)[]): PgSelectBuilder; (on: (PgColumn | SQLWrapper)[], fields: TSelection): PgSelectBuilder; }; }; select(): PgSelectBuilder; select(fields: TSelection): PgSelectBuilder; selectDistinct(): PgSelectBuilder; selectDistinct(fields: TSelection): PgSelectBuilder; selectDistinctOn(on: (PgColumn | SQLWrapper)[]): PgSelectBuilder; selectDistinctOn(on: (PgColumn | SQLWrapper)[], fields: TSelection): PgSelectBuilder; private getDialect; }