import { StateDB } from "@ocap/statedb";
import { IAccountState, IAssetFactoryState, IAssetState, IBalanceTable, IChainState, IDelegateState, IEvidenceState, IRollupBlock, IRollupTable, IStakeState, IStateTable, ITokenFactoryState, ITokenTable, ITxState } from "@ocap/types";

//#region src/db.d.ts

/**
 * 文件系统 StateDB 实现
 * 使用 LokiJS + FSAdapter 作为文件存储引擎
 */
declare class FsStateDB extends StateDB {
  name: string;
  version: string;
  balance: IBalanceTable;
  account: IStateTable<IAccountState>;
  factory: IStateTable<IAssetFactoryState>;
  stake: IStateTable<IStakeState>;
  asset: IStateTable<IAssetState>;
  delegation: IStateTable<IDelegateState>;
  tx: IStateTable<ITxState>;
  token: ITokenTable;
  chain: IStateTable<IChainState>;
  rollup: IRollupTable;
  rollupBlock: IStateTable<IRollupBlock>;
  evidence: IStateTable<IEvidenceState>;
  tokenFactory: IStateTable<ITokenFactoryState>;
  constructor(dataDir: string);
}
//#endregion
export { FsStateDB as default };