import { type DatabaseClient } from "../../../core/databaseClient.js"; import { groupParentsChildrenRelations } from "../../../core/dialect/groupParentsChildrenRelations.js"; import { fetchDatabaseRelationships } from "./queries/fetchDatabaseRelationships.js"; import { fetchEnums } from "./queries/fetchEnums.js"; import { fetchPrimaryKeys } from "./queries/fetchPrimaryKeys.js"; import { fetchSequences } from "./queries/fetchSequences.js"; import { fetchTablesAndColumns } from "./queries/fetchTablesAndColumns.js"; import { fetchUniqueConstraints } from "./queries/fetchUniqueConstraints.js"; import { type AsyncFunctionSuccessType } from "./types.js"; type PrimaryKeys = AsyncFunctionSuccessType; type UniqueConstraints = Array[number]>; type Tables = AsyncFunctionSuccessType; type Enums = Array[number]>; type Sequences = AsyncFunctionSuccessType; type Relationships = AsyncFunctionSuccessType; export type Relationship = Relationships[number]; type GroupedRelationships = ReturnType; type GroupedRelationshipsValue = NonNullable>; export type IntrospectedTableColumn = { identity: { current: number; name: string; } | null; } & Tables[number]["columns"][number]; interface IntrospectedStructureBase { enums: Enums; tables: Tables; } export interface IntrospectedStructure extends IntrospectedStructureBase { sequences?: Record; tables: Array<{ columns: Array; primaryKeys: PrimaryKeys[number] | null; uniqueConstraints?: UniqueConstraints; } & GroupedRelationshipsValue & IntrospectedStructureBase["tables"][number]>; } export declare function introspectDatabase(client: DatabaseClient): Promise; export {};