module arch.node.engines.encryption;

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

import arch.node.engines.encryption_messages open public;
import arch.node.engines.encryption_environment open public;
import arch.node.engines.encryption_behaviour open public;

import arch.node.engines.encryption_config open public;
import arch.node.engines.encryption_messages open public;
import arch.node.engines.encryption_environment open public;
import arch.node.engines.encryption_behaviour open public;

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

open encryption_config_example;
open encryption_environment_example;

EncryptionEngine : Type :=
  Engine
    EncryptionCfg
    EncryptionLocalState
    EncryptionMailboxState
    EncryptionTimerHandle
    EncryptionActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleEncryptionEngine : EncryptionEngine :=
  mkEngine@{
    cfg := encryptionCfg;
    env := encryptionEnv;
    behaviour := encryptionBehaviour;
  };