module arch.node.engines.decryption;

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

import arch.node.engines.decryption_config open public;
import arch.node.engines.decryption_messages open public;
import arch.node.engines.decryption_environment open public;
import arch.node.engines.decryption_behaviour open public;

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

open decryption_config_example;
open decryption_environment_example;

DecryptionEngine : Type :=
  Engine
    DecryptionCfg
    DecryptionLocalState
    DecryptionMailboxState
    DecryptionTimerHandle
    DecryptionActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleDecryptionEngine : DecryptionEngine :=
  mkEngine@{
    cfg := decryptionCfg;
    env := decryptionEnv;
    behaviour := decryptionBehaviour;
  };