import LocalBaseIndexDB from "./base.mjs";
import { md5 } from "@ocap/util/lib/md5";
import Lokijs from "lokijs";
import { IIndexDB, IIndexTable, IndexTableTypeMap } from "@ocap/types";

//#region src/db/index.d.ts
declare class MemoryIndexDB extends LocalBaseIndexDB implements IIndexDB {
  name: string;
  version: string;
  md5: typeof md5;
  db: Lokijs;
  tx: IIndexTable<IndexTableTypeMap['tx']>;
  account: IIndexTable<IndexTableTypeMap['account']>;
  asset: IIndexTable<IndexTableTypeMap['asset']>;
  token: IIndexTable<IndexTableTypeMap['token']>;
  factory: IIndexTable<IndexTableTypeMap['factory']>;
  stake: IIndexTable<IndexTableTypeMap['stake']>;
  delegation: IIndexTable<IndexTableTypeMap['delegation']>;
  rollup: IIndexTable<IndexTableTypeMap['rollup']>;
  rollupBlock: IIndexTable<IndexTableTypeMap['rollupBlock']>;
  rollupValidator: IIndexTable<IndexTableTypeMap['rollupValidator']>;
  tokenDistribution: IIndexTable<IndexTableTypeMap['tokenDistribution']>;
  tokenFactory: IIndexTable<IndexTableTypeMap['tokenFactory']>;
  constructor();
  close(): Promise<void>;
}
//#endregion
export { MemoryIndexDB as default };