import { ModelConstructorInterface } from "../models/model.interface.js" ; export const DEFAULT_SYNC_COLUMN_NAME = 'syncOn' ; export interface MigrationInterface { run ( ) : Promise < TableSchema [ ] > ; createObjectStore ( schema ) : IDBObjectStore ; dropObjectStore ( schema ) : boolean ; createIndex ( column , objectStore ) : IDBIndex ; dropIndex ( column , objectStore ) : boolean ; listObjectStores ( ) : IDBObjectStore [ ] ; setupSyncColumn ( schema , objectStore ) : void ; } export interface TableColumn { name : string ; index : string [ ] | string ; attributes ? : IDBIndexParameters ; dbIndex ? : IDBIndex | null ; } export interface TableSchema { name : string ; columns : TableColumn [ ] ; ormClass ? : ModelConstructorInterface ; primary ? : string ; objectStore ? : IDBObjectStore | null ; syncColumn ? : boolean ; syncColumnName ? : string ; } export interface Database { name : string ; version : number ; tables : TableSchema [ ] ; }