import { Model } from '../model';
import { Repository } from './repository';

export type StorageAdapterParams = Record<string, boolean | number | string>;

/* new T(req, res) */
export type NewableStorageAdapter = {
  new (params: StorageAdapterParams): StorageAdapter;
};

export interface StorageAdapter {
  resolve<T>(collectionName: string, model: Model<T>): Promise<Repository<T>>;
}
