import type { Mongoose } from 'mongoose';
import type { Sequelize } from 'sequelize';
import type { Optional } from '../../../../utils/optionals';
export declare enum DatabaseVendor {
    MONGOOSE = "MONGOOSE",
    SEQUELIZE = "SEQUELIZE",
    SQLITE = "SQLITE"
}
export type DatabaseInstance = Mongoose | Sequelize;
export type OnDatabaseConnectedFunction = Optional<(dbInstance: DatabaseInstance) => Promise<void> | void>;
export interface DatabaseConfig {
    vendor: DatabaseVendor;
    instance?: DatabaseInstance;
    connectionString: string;
    onDatabaseConnected?: OnDatabaseConnectedFunction;
}
export interface DatabaseServerPort {
    connect(serviceName: string, config: DatabaseConfig): Promise<void>;
    disconnect?(): Promise<void>;
}
//# sourceMappingURL=port.d.ts.map