import { Model } from '../model'; import { StorageObject } from '../storage'; export interface IDBAdapter extends DBAdapter { } export declare type DefaultQueryType = Partial & Required<{ type: TModel['type']; }>; export interface StorageQueryType { type: TModel['type']; storage: TModel['storage']; } export interface StorageDefinitionInfo { primaryField: keyof TModel; allowedFields: (keyof TModel)[]; } declare abstract class DBAdapter { protected options: unknown; private readonly ready; constructor(options: unknown); setStorage(storage: StorageObject): Promise; getStorage(partialModel: DefaultQueryType): Promise>; getStorageObjectsByStorage(partialModel: StorageQueryType): Promise[]>; protected abstract initialize(): Promise; protected abstract getModel(partialModel: DefaultQueryType): Promise; protected abstract getModelList(partialModel: DefaultQueryType | StorageQueryType): Promise; protected abstract deleteModel(model: TModel): Promise; protected abstract createModel(model: TModel): Promise; protected abstract updateModel(prevModel: TModel, nextModel: TModel): Promise; protected getStorageDefinitionInfo(type: TModel['type']): StorageDefinitionInfo; } export declare const AbstractDBAdapter: typeof DBAdapter; export {};