module arch.node.engines.storage_environment;

import arch.node.engines.storage_messages open;

import arch.node.types.basics open;
import arch.node.types.engine open;
import arch.node.types.messages open;
import arch.node.types.identities open;
import arch.node.types.anoma_message as Anoma open;

StorageMailboxState : Type := Unit;

type StorageLocalState := mkStorageLocalState;

StorageTimerHandle : Type := Unit;

StorageTimestampedTrigger : Type :=
  TimestampedTrigger StorageTimerHandle Anoma.Msg;

StorageEnv : Type :=
  EngineEnv StorageLocalState StorageMailboxState StorageTimerHandle Anoma.Msg;

module storage_environment_example;
  
  exStorageEnv : StorageEnv :=
    mkEngineEnv@{
      localState := mkStorageLocalState;
      mailboxCluster := Map.empty;
      acquaintances := Set.empty;
      timers := [];
    };

end;