namespace MAGES

namespace MAGES {

// namespaces

namespace MAGES::Analytics;
    namespace MAGES::Analytics::Editor;
namespace MAGES::Attributes;
    namespace MAGES::Attributes::Editor;
namespace MAGES::Compatibility;
    namespace MAGES::Compatibility::Text;
        namespace MAGES::Compatibility::Text::Unity2022;
        namespace MAGES::Compatibility::Text::Unity2023;
namespace MAGES::ComponentLibrary;
    namespace MAGES::ComponentLibrary::Editor;
namespace MAGES::DataContainer;
namespace MAGES::Device;
namespace MAGES::DeviceManager;
    namespace MAGES::DeviceManager::Editor;
namespace MAGES::DualQuaternions;
namespace MAGES::Editor;
    namespace MAGES::Editor::Utilities;
namespace MAGES::ExampleScene;
namespace MAGES::Interaction;
    namespace MAGES::Interaction::Editor;
    namespace MAGES::Interaction::Interactables;
    namespace MAGES::Interaction::Interactors;
    namespace MAGES::Interaction::Runtime;
namespace MAGES::JARIA;
    namespace MAGES::JARIA::Editor;
namespace MAGES::Networking;
    namespace MAGES::Networking::Editor;
        namespace MAGES::Networking::Editor::PrefabConfiguration;
    namespace MAGES::Networking::PrefabConfiguration;
namespace MAGES::RigidBodyAnimation;
namespace MAGES::SceneGraph;
    namespace MAGES::SceneGraph::Editor;
namespace MAGES::Tests;
namespace MAGES::UIs;
namespace MAGES::Utilities;
    namespace MAGES::Utilities::Collections;

// enums

enum ActionState;
enum DirectionType;
enum InteractionMode;
enum LocomotionPhase;
enum StepEvent;
enum UpdatePhase;

// structs

struct LicenseLimits;

// interfaces

interface IControllerInteractor;
interface IGenericInputActions;
interface IInteractable;
interface IInteractionActions;
interface IInteractionManager;
interface IInteractor;
interface ILocator;
interface ILocomotionActions;
interface ILocomotionProvider;
interface ILocomotionSystem;
interface IMerger;
interface IPlayerRig;
interface ISchema;

// classes

class ActivateEnterInteractionEventArgs;
class ActivateExitInteractionEventArgs;
class AnalyticsModule;
class AnimationUtilities;
class BaseActionData;
class BaseInteractionEventArgs;
class BaseLocomotionEventArgs;
class BaseRegistrationEventArgs;
class Bundle;
class CountSchema;
class DataContainerModule;
class DefaultValueLocatorAttribute;
class DeviceManagerModule;
class DynamicLabel;
class EffectData;
class EffectDataCollection;
class EffectImplementor;
class EventSchema;
class ExclusiveAccessFinishedEventArgs;
class ExclusiveAccessGrantedEventArgs;
class FloatingLabel;
class FollowObject;
class GameObjectPathReferences;
class GameObjectReference;
class Ghost;
class HoverEnterInteractionEventArgs;
class HoverExitInteractionEventArgs;
class Hub;
class HubModule;
class InteractableDeregisterEventArgs;
class InteractableRegisterEventArgs;
class InteractionSystemModule;
class InteractorDeregisterEventArgs;
class InteractorRegisterEventArgs;
class ListSchema;
class LocomotionEndEventArgs;
class LocomotionStartEventArgs;
class LookAtObject;
class MAGESTooltipStyles;
class MergerRegistry;
class MethodReference;
class NetworkingModule;
class NumericMerger;

template 
class OverridableProperty;

class OverridablePropertyBase;
class PreviewObject;
class PropertyCollection;
class PropertyProxyUtilities;
class SceneGraphModule;
class Segment;
class SelectEnterInteractionEventArgs;
class SelectExitInteractionEventArgs;

template 
class Sorter;

class Step;
class StepContainer;
class StepDetailsAttribute;
class StringMerger;
class StubAnalytics;
class StubDataContainer;
class StubDeviceManager;
class StubInteractionSystem;
class StubNetworking;
class TagLabel;
class Theme;
class TypeReference;
class UniqueIdentifier;
class UniqueIdentifierManager;
class UniqueReference;
class WorldSpaceCanvas;

} // namespace MAGES