/// import * as Sequelize from 'sequelize'; import { Spec, SpecType, Model } from 'pretur.spec'; import { ProviderPool } from './pool'; import { TableCreationHook, TableDestructionHook, DatabaseAfterCreationHook, DatabaseAfterDestructionHook } from './buildDatabase'; export declare type DatabaseInstance = Sequelize.Instance>> & Partial>; export declare type DatabaseModel = Sequelize.Model, Partial>>; export interface UninitializedDatabaseModel { database: DatabaseModel; creationHook?: TableCreationHook; destructionHook?: TableDestructionHook; afterDatabaseCreationHook?: DatabaseAfterCreationHook; afterDatabaseDestructionHook?: DatabaseAfterDestructionHook; initialize(pool: ProviderPool): void; } export interface BuildDatabaseOptions { attributeToFieldMap?: { [P in keyof T['fields']]?: string; }; tableName?: string; creationHook?: TableCreationHook; destructionHook?: TableDestructionHook; afterDatabaseCreationHook?: DatabaseAfterCreationHook; afterDatabaseDestructionHook?: DatabaseAfterDestructionHook; } export declare function buildDatabaseModel(spec: Spec, sequelize: Sequelize.Sequelize, options?: BuildDatabaseOptions): UninitializedDatabaseModel;