-module(aion_flow).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/aion_flow.gleam").
-export_type([package_root/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" `aion_flow` is the typed Gleam SDK for authoring durable Aion\n"
" workflows.\n"
"\n"
" Workflow authors write ordinary deterministic Gleam for decisions, loops,\n"
" and data transformation. Code reaches the outside world only through the\n"
" SDK primitives exposed from the public modules listed below: activities,\n"
" signals, queries, timers, child workflows, codecs, durations, errors, and\n"
" the pure-Gleam testing harness.\n"
"\n"
" The recorded side-effect boundary is structural: activity dispatch goes\n"
" through `aion/workflow.run` and its typed concurrency helpers. Workflow code\n"
" must not read wall clocks or ambient entropy; use the deterministic\n"
" `aion/workflow.now`, `aion/workflow.random`, and timer primitives instead so\n"
" replay observes the same values.\n"
"\n"
" Public import paths:\n"
"\n"
" - `aion/activity` for typed activity definitions and configuration.\n"
" - `aion/workflow` for workflow definitions, deterministic primitives,\n"
" timers, child workflow helpers, and activity dispatch.\n"
" - `aion/signal` for typed signal references and signal helpers.\n"
" - `aion/query` for typed query handlers and replies.\n"
" - `aion/child` for typed child-workflow handles.\n"
" - `aion/error` for activity and engine-originated error types.\n"
" - `aion/codec` for payload codecs and decode errors.\n"
" - `aion/duration` for canonical workflow durations.\n"
" - `aion/testing` for simulated time, activity mocks, and replay assertions.\n"
"\n"
" The canonical typed example lives in\n"
" `test/aion_flow_test.gleam` as `canonical_example_workflow`: it defines a\n"
" workflow with `workflow.define`, runs an activity, reads deterministic time,\n"
" sleeps, receives a typed signal, spawns and awaits a child workflow, and fans\n"
" out homogeneous activities with `workflow.all` under the pure-Gleam harness.\n"
).
-type package_root() :: package_root.