import { type HasSql, internalData } from './Internal.js'; import type { IsPostgres, QueryMeta } from './MetaData.js'; import type { QueryData, SingleQuery } from './Queries.js'; import type { SelectionInput, SelectionRow } from './Selection.js'; import type { Table, TableDefinition } from './Table.js'; import { type CTE } from './query/CTE.js'; import { DeleteFrom } from './query/Delete.js'; import { InsertInto } from './query/Insert.js'; import type { DeleteQuery, FromGuard, FromQuery, FromRow, InsertQuery, QueryBase, SelectionQuery, UpdateQuery } from './query/Query.js'; import type { UnionBase, WithSelection, WithoutSelection } from './query/Select.js'; import { UpdateTable } from './query/Update.js'; declare class BuilderBase { readonly [internalData]: QueryData & QueryBase; constructor(data?: QueryData & QueryBase); $query(select: SelectionQuery): SingleQuery, Meta>; $query(from: FromQuery): SingleQuery, Meta>; $query(insert: InsertQuery): SingleQuery, Meta>; $query(remove: DeleteQuery): SingleQuery, Meta>; $query(update: UpdateQuery): SingleQuery, Meta>; select(): WithoutSelection; select(select: Input): WithSelection; selectDistinct(): WithoutSelection; selectDistinct(selection: Input): WithSelection; selectDistinctOn(this: Builder, columns: Array): WithoutSelection; selectDistinctOn(this: Builder, columns: Array, selection: Input): WithSelection; update(table: Table): UpdateTable; insert(into: Table): InsertInto; delete(from: Table): DeleteFrom; } export declare class Builder extends BuilderBase { $with(cteName: string): { as(query: UnionBase): CTE; }; with(...definitions: Array): BuilderBase; withRecursive(...definitions: Array): BuilderBase; } export {};