import { Schema, SchemaTableType, Table, type BaseColumnType, type TableV2Options } from '@powersync/common'; import { InferSelectModel, Relations, type Casing } from 'drizzle-orm'; import { CasingCache } from 'drizzle-orm/casing'; import { type SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core'; export type ExtractPowerSyncColumns> = { [K in keyof InferSelectModel as K extends 'id' ? never : K]: BaseColumnType[K]>; }; export type Expand = T extends infer O ? { [K in keyof O]: O[K]; } : never; export declare function toPowerSyncTable>(table: T, options?: Omit & { casingCache?: CasingCache; }): Table>>; export type DrizzleTablePowerSyncOptions = Omit; export type DrizzleTableWithPowerSyncOptions = { tableDefinition: SQLiteTableWithColumns; options?: DrizzleTablePowerSyncOptions; }; export type TableName = T extends SQLiteTableWithColumns ? T['_']['name'] : T extends DrizzleTableWithPowerSyncOptions ? T['tableDefinition']['_']['name'] : never; export type TablesFromSchemaEntries = { [K in keyof T as T[K] extends Relations ? never : T[K] extends SQLiteTableWithColumns | DrizzleTableWithPowerSyncOptions ? TableName : never]: T[K] extends SQLiteTableWithColumns ? Table>> : T[K] extends DrizzleTableWithPowerSyncOptions ? Table>> : never; }; export type DrizzleAppSchemaOptions = { casing?: Casing; }; export declare class DrizzleAppSchema | Relations | DrizzleTableWithPowerSyncOptions>> extends Schema { constructor(drizzleSchema: T, options?: DrizzleAppSchemaOptions); readonly types: SchemaTableType>>; }