#![doc = include_str!("../README.md")]
mod acl;
mod builder;
mod cache;
mod config;
mod engine;
mod env;
mod error;
mod event;
mod export;
mod model;
mod package;
mod plugin;
mod scheduler;
mod signal;
mod snapshot;
mod store;
mod utils;
#[cfg(test)]
mod tests;
use parking_lot::RwLock;
use std::sync::Arc;
pub use acl::{ACTION_SUBSCRIBE, Acl, AclConfig, AclError, Principal, RoleConfig, ScopePolicy};
pub use builder::EngineBuilder;
pub use config::{Config, ConfigLog, DEFAULT_LOG_MAX_FILES, MissingParamAction};
pub use engine::Engine;
pub use env::ActUserVar;
pub use error::{ActError, Error};
pub use event::{Action, Event, Message, MessageState};
pub use export::actions;
pub use export::{Channel, ChannelOptions, Executor};
pub use model::*;
pub use package::{ActPackage, ActPackageCatalog, ActPackageDefinition, ActResource, ActRunAs};
pub use plugin::ActPlugin;
pub use scheduler::Context;
pub use signal::Signal;
pub use snapshot::{MAX_TTL_SECS, SnapshotEntry, SnapshotManager, SnapshotOptions, SnapshotPolicy};
pub use store::*;
pub use tokio_util::sync::CancellationToken;
pub type Result<T> = std::result::Result<T, ActError>;
pub(crate) use scheduler::NodeKind;
pub(crate) type ShareLock<T> = Arc<RwLock<T>>;
pub(crate) use package::Package;
pub(crate) use scheduler::{ActTask, TaskState};