import { SQL, Subquery, ViewBaseConfig } from 'drizzle-orm'; import { PgTable, type SelectedFields } from 'drizzle-orm/pg-core'; import { PgViewBase } from 'drizzle-orm/pg-core/view-base'; import type { ColumnsSelection } from 'drizzle-orm/sql/sql'; interface PgViewBaseInternal extends PgViewBase { [ViewBaseConfig]?: { selectedFields: SelectedFields; }; } export declare function aliasFields(fields: SelectedFields, fullJoin?: boolean): SelectedFields; /** * Fields a subquery, CTE or view built by this driver exposes to the outer * query. * * Drizzle references an aliased field of a subquery by its bare alias, and * aliasFields() aliases every field. A bare "id" is ambiguous as soon as * another joined source has an `id` column. Exposing each aliased field as a * column named after its alias makes Drizzle render "sq"."id", the way stock * pg-core references subquery columns. The field keeps its decoder. */ export declare function exposeSubqueryFields>(fields: T): T; export declare function getSelectSourceFields(source: PgTable | Subquery | PgViewBaseInternal | SQL, isPartialSelect: boolean): SelectedFields; export {};