import type { Cache } from './cache/core/cache.js'; import type { AnyColumn } from './column.js'; import type { Logger } from './logger.js'; import type { SelectedFieldsOrdered } from './operations.js'; import type { TableLike } from './query-builders/select.types.js'; import { Param, SQL, View } from './sql/sql.js'; import { Table } from './table.js'; /** @internal */ export declare function mapResultRow(columns: SelectedFieldsOrdered, row: unknown[], joinsNotNullableMap: Record | undefined): TResult; /** @internal */ export declare function orderSelectedFields(fields: Record, pathPrefix?: string[]): SelectedFieldsOrdered; export declare function haveSameKeys(left: Record, right: Record): boolean; /** @internal */ export declare function mapUpdateSet(table: Table, values: Record): UpdateSet; export type UpdateSet = Record; export type OneOrMany = T | T[]; export type Update = { [K in Exclude]: T[K]; } & TUpdate; export type Simplify = { [K in keyof T]: T[K]; } & {}; export type Not = T extends true ? false : true; export type IsNever = [T] extends [never] ? true : false; export type IsUnion = (T extends any ? (U extends T ? false : true) : never) extends false ? false : true; export type SingleKeyObject = IsNever extends true ? never : IsUnion extends true ? DrizzleTypeError : T; export type FromSingleKeyObject = IsNever extends true ? never : IsUnion extends true ? DrizzleTypeError : Result; export type SimplifyMappedType = [T] extends [unknown] ? T : never; export type ShallowRecord = SimplifyMappedType<{ [P in K]: T; }>; export type Assume = T extends U ? T : U; export type Equal = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) ? true : false; export interface DrizzleTypeError { $drizzleTypeError: T; } export type ValueOrArray = T | T[]; /** @internal */ export declare function applyMixins(baseClass: any, extendedClasses: any[]): void; export type Or = T1 extends true ? true : T2 extends true ? true : false; export type IfThenElse = If extends true ? Then : Else; export type PromiseOf = T extends Promise ? U : T; export type Writable = { -readonly [P in keyof T]: T[P]; }; export type NonArray = T extends any[] ? never : T; export declare function getTableColumns(table: T): T['_']['columns']; export declare function getViewSelectedFields(view: T): T['_']['selectedFields']; /** @internal */ export declare function getTableLikeName(table: TableLike): string | undefined; export type ColumnsWithTable[]> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName; }>; }; export type Casing = 'snake_case' | 'camelCase'; export interface DrizzleConfig = Record> { logger?: boolean | Logger; schema?: TSchema; casing?: Casing; cache?: Cache; } export type ValidateShape = T extends ValidShape ? Exclude extends never ? TResult : DrizzleTypeError<`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`> : never; export type KnownKeysOnly = { [K in keyof T]: K extends keyof U ? T[K] : never; }; export type IsAny = 0 extends (1 & T) ? true : false; /** @internal */ export declare function getColumnNameAndConfig | undefined>(a: string | TConfig | undefined, b: TConfig | undefined): { name: string; config: TConfig; }; export type IfNotImported = unknown extends T ? Y : N; export type ImportTypeError = `Please install \`${TPackageName}\` to allow Drizzle ORM to connect to the database`; export type RequireAtLeastOne = Keys extends any ? Required> & Partial> : never; export declare function isConfig(data: any): boolean; export type NeonAuthToken = string | (() => string | Promise); export declare const textDecoder: import("node:util").TextDecoder | null; //# sourceMappingURL=utils.d.ts.map