import { enumify, IBackupService, ILoggerService } from "@connext/types"; import { Sequelize } from "sequelize"; export type StoreOptions = { backupService?: IBackupService, logger?: ILoggerService, sequelize?: Sequelize, prefix?: string, separator?: string, }; export interface IAsyncStorage { getItem(key: string): Promise; setItem(key: string, value: string): Promise; removeItem(key: string): Promise; } export const StoreTypes = enumify({ AsyncStorage: "AsyncStorage", File: "File", LocalStorage: "LocalStorage", Postgres: "Postgres", Memory: "Memory", }); export type StoreTypes = typeof StoreTypes[keyof typeof StoreTypes]; export interface KeyValueStorage { init(): Promise; close(): Promise; getKey(...args: string[]): string; // generates a key for related subject strings getKeys(): Promise; getEntries(): Promise<[string, any][]>; getItem(key: string): Promise; setItem(key: string, value: T): Promise; removeItem(key: string): Promise; }