import { IStorageRefOptions } from './IStorageRefOptions'; import { ClassType, IClassRef } from '@allgemein/schema-api'; import { IStorage } from './IStorage'; import { IStorageRef } from './IStorageRef'; import { IRuntimeLoader } from '../core/IRuntimeLoader'; export declare class Storage { static NAME: string; nodeId: string; storageFramework: { [key: string]: IStorage; }; defaultFramework: string; private storageRefs; /** * return the name of the default framework to use */ getDefaultFramework(): string; /** * Factorize a storage ref instance through default or passed framework and * register the reference internally * @param name * @param options */ register(name: string, options: IStorageRefOptions): Promise; /** * Register or override framework for new storage type * @param cls * @param loader */ registerFramework(cls: ClassType | Function, loader?: IRuntimeLoader): Promise; prepare(config: { [name: string]: IStorageRefOptions; }, loader?: IRuntimeLoader): Promise; /** * Register a storage ref by settings * * @param name * @param settings * @param loader */ registerStorageRef(name: string, settings: IStorageRefOptions, loader?: IRuntimeLoader): Promise; fromPath(path: string): Promise; /** * Returns storage ref for the given classRef or machineName * @param classRef */ forClass(classRef: string | Function | IClassRef): X; get(name?: string): X; /** * Return registered storage references */ getStorageRefs(): IStorageRef[]; /** * Return registered storage frameworks */ getStorageFrameworks(): IStorage[]; getNames(): string[]; getAllOptions(): IStorageRefOptions[]; /** * Unregister a storage reference */ unregister(refOrName: string | IStorageRef): Promise; shutdown(): Promise; }