import { DatabaseConnection } from './DatabaseConnection'; import { IDatabasePosition } from './IDatabasePosition'; export declare abstract class Database { private $clusterConfigMap; constructor(); addMaster(config: TDatabaseConfig): void; removeMaster(): void; addSlave(slaveID: string, config: TDatabaseConfig): string; removeSlave(slaveID: string): void; getConnection(requireWriteAccess?: boolean, nodeID?: string, requiredPosition?: IDatabasePosition): Promise>; destroy(): Promise; protected abstract _destroy(): Promise; protected abstract _addNode(name: string, config: TDatabaseConfig): void; protected abstract _removeNode(name: string): void; protected abstract _getConnection(query: string, requireWriteAccess: boolean, requiredPosition?: IDatabasePosition): Promise>; abstract escape(query: string): string; }