import { SQL } from "../sql/sql.js"; import { Subquery } from "../subquery.js"; import { type Check } from "./checks.js"; import type { AnyGelColumn } from "./columns/index.js"; import { type ForeignKey } from "./foreign-keys.js"; import type { Index } from "./indexes.js"; import { GelPolicy } from "./policies.js"; import { type PrimaryKey } from "./primary-keys.js"; import { GelTable } from "./table.js"; import { type UniqueConstraint } from "./unique-constraint.js"; import type { GelViewBase } from "./view-base.js"; import { type GelMaterializedView, type GelView } from "./view.js"; export declare function getTableConfig(table: TTable): { columns: import("./index.js").GelColumn, {}, {}>[]; indexes: Index[]; foreignKeys: ForeignKey[]; checks: Check[]; primaryKeys: PrimaryKey[]; uniqueConstraints: UniqueConstraint[]; name: string; schema: string | undefined; policies: GelPolicy[]; enableRLS: boolean; }; export declare function extractUsedTable(table: GelTable | Subquery | GelViewBase | SQL): string[]; export declare function getViewConfig(view: GelView): { with?: import("./view.js").ViewWithConfig; name: TName; originalName: TName; schema: string | undefined; selectedFields: import("../sql/sql.js").ColumnsSelection; isExisting: TExisting; query: TExisting extends true ? undefined : SQL; isAlias: boolean; }; export declare function getMaterializedViewConfig(view: GelMaterializedView): { with?: import("./view.js").GelMaterializedViewWithConfig; using?: string; tablespace?: string; withNoData?: boolean; name: TName; originalName: TName; schema: string | undefined; selectedFields: import("../sql/sql.js").ColumnsSelection; isExisting: TExisting; query: TExisting extends true ? undefined : SQL; isAlias: boolean; }; export type ColumnsWithTable[]> = { [Key in keyof TColumns]: AnyGelColumn<{ tableName: TForeignTableName; }>; };