///
import * as Sequelize from 'sequelize';
/**
* >**Note:** This won't do anything for you if you're not using
* a `StorageProvider` for your client that uses Sequelize
*
* Holds the Sequelize connection to whichever database backend
* is chosen via the Client StorageProvider. As long as you wait
* until `clientReady` you can safely use {@link Database.instance}
* to get the Database instance and access the Sequelize connection
* via {@link Database#db}
*
* This will allow you to define and access your own Sequelize Models
* without having to create another database connection. This is
* especially important when using `SQLiteProvider` as SQLite
* does not like having multiple connections
*/
export declare class Database {
private readonly logger;
private static _instance;
private _url;
db: Sequelize.Sequelize;
private constructor();
/**
* As long as a Sequelize-using storage provider is being used,
* this will return the Database instance holding the Sequelize
* connection to the database
* @param {string} [url] The database connection url
* @returns {Database}
*/
static instance(url?: string): Database;
/**
* Authenticate the connection to the database
* @returns {Promise}
*/
init(): Promise;
}