import { TransactionScope } from './scope' import { Table } from './table' import { ConstructorClass, DbDriver, ResultSet, ValueOf } from './types' export interface DbConfig { driver: DbDriver entities: TModels createTables?: boolean } export declare type Tables = { [P in keyof T]: Table, ConstructorClass>, T> } export declare class Db { /** * Create new database instance. * @param config Database Configuration */ static init(config: DbConfig): Promise> config: DbConfig driver: DbDriver tables: Tables constructor() close(): Promise buildTables(): Tables transaction( scope: (transacionScope: TransactionScope) => void ): Promise exec(sql: string, args?: any[]): Promise query(sql: string, args?: any[]): Promise single(sql: string, args?: any[]): Promise dropAllTables(): Promise createAllTables(): Promise generateBackupSql(): Promise restoreFromSql(sql: string, recreate?: boolean): Promise }