"""VLCsim - Visible Light Communication Network Simulator.

A discrete-event simulation framework for modeling and analyzing Visible Light
Communication (VLC) networks with Time Division Multiplexing (TDM) resource allocation.

Modules:
    scene: Physical environment modeling including room dimensions, LED access points,
        RF fallback systems, and mobile receivers with realistic VLC channel propagation.
    controller: Resource allocation and connection management system handling TDM frame
        slice assignment, connection state machine, and custom allocation algorithms.
    simulator: Event-driven simulation engine implementing discrete-event system (DES)
        for network dynamics, traffic generation, and performance metrics collection.

Example:
    Basic simulation setup::

        from vlcsim import Scenario, Simulator

        # Create scenario with room and devices
        scenario = Scenario(length=5, width=5, height=3)
        scenario.add_VLed(x=2.5, y=2.5, z=3)

        # Run simulation
        sim = Simulator(scenario)
        sim.run()
        print(f"Blocking Probability: {sim.get_Blocking_Probability()}")

See Also:
    For detailed documentation, visit the project repository or build the Sphinx docs.
"""

__version__ = "0.5.0"  # placeholder for poetry-dynamic-versioning

from .scene import *
from .controller import *
from .simulator import *

__all__ = [
    "AccessPoint",
    "VLed",
    "Receiver",
    "Scenario",
    "Connection",
    "Event",
    "Simulator",
    "Controller",
    "RF",
]
