///
import { IStorageRefOptions } from './IStorageRefOptions';
import { IStorageRef } from './IStorageRef';
import { IEntityController } from './IEntityController';
import { IClassRef, IEntityRef, ILookupRegistry, ISchemaRef } from '@allgemein/schema-api';
import { IConnection } from './IConnection';
import { ICollection } from './ICollection';
import { EventEmitter } from 'events';
export declare abstract class StorageRef extends EventEmitter implements IStorageRef {
private options;
private _extending;
private _extends;
constructor(options: IStorageRefOptions);
get name(): string;
getName(): string;
abstract reload(): Promise | boolean;
abstract isActive(): boolean;
abstract getType(): string;
abstract getFramework(): string;
abstract hasEntityClass(cls: string | Function | IClassRef): boolean;
abstract getRegistry(): ILookupRegistry;
abstract getEntityRef(name: string | Function): IEntityRef;
abstract getEntityRefs(): IEntityRef[];
/**
* Impl. of IStorageRef interface method
*/
getDeclaredEntities(): Function[];
getSchemaRef(name: string): ISchemaRef;
getSchemaRefs(): ISchemaRef[];
abstract getEntityNames(): string[];
abstract getRawCollectionNames(): string[] | Promise;
abstract getRawCollections(collectionNames: string[]): ICollection[] | Promise;
abstract getRawCollection(name: string): ICollection | Promise;
abstract shutdown(full?: boolean): void;
addExtendedStorageRef(ref: IStorageRef): void;
addExtendingStorageRef(extRef: IStorageRef): void;
abstract getController(): IEntityController;
getOptions(): IStorageRefOptions;
setOptions(options: IStorageRefOptions): void;
abstract prepare(): boolean | Promise;
getExtendingStorageRef(): IStorageRef[];
getExtendedStorageRef(): IStorageRef[];
abstract connect(): Promise;
}