module arch.node.engines.transport_connection;

import arch.node.engines.transport_connection_messages open;
import arch.node.engines.transport_connection_config open;
import arch.node.engines.transport_connection_environment open;
import arch.node.engines.transport_connection_behaviour open;

import arch.node.types.basics open;
import arch.node.types.engine open;
import arch.node.types.anoma as Anoma open;

open transport_connection_config_example;
open transport_connection_environment_example;
open transport_connection_behaviour_example;

TransportConnectionEngine : Type :=
  Engine
    TransportConnectionLocalCfg
    TransportConnectionLocalState
    TransportConnectionMailboxState
    TransportConnectionTimerHandle
    TransportConnectionActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exTransportConnectionEngine : TransportConnectionEngine :=
  mkEngine@{
    cfg := exTransportConnectionCfg;
    env := exTransportConnectionEnv;
    behaviour := exTransportConnectionBehaviour;
  };