import { GetColumnData } from 'drizzle-orm'; import { OptionalKeyOnly, RequiredKeyOnly } from 'drizzle-orm/operations'; import { Table } from 'drizzle-orm/table'; import { Update } from 'drizzle-orm/utils'; import { Simplify } from 'drizzle-orm/utils'; import { CheckBuilder } from './checks'; import { AnySQLiteColumn, AnySQLiteColumnBuilder, BuildColumns } from './columns/common'; import { ForeignKeyBuilder } from './foreign-keys'; import { IndexBuilder } from './indexes'; import { PrimaryKeyBuilder } from './primary-keys'; export declare type SQLiteTableExtraConfig = Record; export interface TableConfig { name: string; columns: Record; } export declare type UpdateTableConfig> = Update; export declare class SQLiteTable> extends Table { protected $columns: T['columns']; toString(): T['name']; } export declare type AnySQLiteTable = {}> = SQLiteTable>; export declare type SQLiteTableWithColumns = SQLiteTable & { [Key in keyof T['columns']]: T['columns'][Key]; }; /** * See `GetColumnConfig`. */ export declare type GetTableConfig = T extends SQLiteTableWithColumns ? TParam extends undefined ? TConfig : TParam extends keyof TConfig ? TConfig[TParam] : TConfig : never; export declare type InferModel = TInferMode extends 'insert' ? Simplify<{ [Key in keyof GetTableConfig & string as RequiredKeyOnly[Key]>]: GetColumnData[Key], 'query'>; } & { [Key in keyof GetTableConfig & string as OptionalKeyOnly[Key]>]?: GetColumnData[Key], 'query'>; }> : { [Key in keyof GetTableConfig]: GetColumnData[Key], 'query'>; }; export interface SQLiteTableConfig { name: TName; temporary?: boolean; } export declare function sqliteTable>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns) => SQLiteTableExtraConfig): SQLiteTableWithColumns<{ name: TTableName; columns: BuildColumns; }>; //# sourceMappingURL=table.d.ts.map