module arch.node.engines.ticker;

import prelude open;
import arch.node.types.engine_environment open;
import arch.node.types.engine_behaviour open;
import arch.node.types.engine open;

import arch.node.engines.ticker_config open public;
import arch.node.engines.ticker_messages open public;
import arch.node.engines.ticker_environment open public;
import arch.node.engines.ticker_behaviour open public;

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

open ticker_config_example;
open ticker_environment_example;

TickerEngine : Type :=
  Engine
    TickerLocalCfg
    TickerLocalState
    TickerMailboxState
    TickerTimerHandle
    TickerActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleTickerEngine : TickerEngine :=
  mkEngine@{
    cfg := tickerCfg;
    env := tickerEnv;
    behaviour := tickerBehaviour;
  };