module arch.node.engines.transport_connection_environment;

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;

syntax alias TransportConnectionMailboxState := Unit;

type TransportConnectionLocalState := mkTransportConnectionLocalState;

TransportConnectionTimerHandle : Type := Unit;

TransportConnectionTimestampedTrigger : Type :=
  TimestampedTrigger TransportConnectionTimerHandle Anoma.Msg;

TransportConnectionEnv : Type :=
  EngineEnv
    TransportConnectionLocalState
    TransportConnectionMailboxState
    TransportConnectionTimerHandle
    Anoma.Msg;

module transport_connection_environment_example;
  
  exTransportConnectionEnv : TransportConnectionEnv :=
    mkEngineEnv@{
      localState := mkTransportConnectionLocalState;
      mailboxCluster := Map.empty;
      acquaintances := Set.empty;
      timers := [];
    };

end;