import de.renew.api.ISimulationStateLoader;
import de.renew.application.FinderRegistrationProvider;
import de.renew.application.SimulationManagerProvider;
import de.renew.application.SimulationStateLoaderProvider;
import de.renew.application.SimulatorExtensionsProvider;
import de.renew.engine.thread.SimulationLockExecutorProvider;
import de.renew.simulator.api.IFinderRegistration;
import de.renew.simulator.api.ISimulationLockExecutor;
import de.renew.simulator.api.ISimulationManager;
import de.renew.simulator.api.ISimulatorExtensions;

module de.renew.simulator.impl {
    requires de.renew.simulator.api;
    requires transitive de.renew.simulatorontology;

    exports de.renew.net.inscription;
    exports de.renew.net.loading;
    exports de.renew.net;
    exports de.renew.net.event;
    exports de.renew.application;
    exports de.renew.shadowcompiler;
    exports de.renew.net.inscription.arc;
    exports de.renew.expression;
    exports de.renew.unify;
    exports de.renew.engine.searchqueue;
    exports de.renew.engine.simulator;
    exports de.renew.engine.searcher;
    exports de.renew.engine.common;
    exports de.renew.database;
    exports de.renew.engine.events;
    exports de.renew.database.entitylayer;
    exports de.renew.net.inscription.transition;
    exports de.renew.api;
    exports de.renew.engine.thread;

    provides ISimulationManager with SimulationManagerProvider;
    provides ISimulationStateLoader with SimulationStateLoaderProvider;
    provides IFinderRegistration with FinderRegistrationProvider;
    provides ISimulatorExtensions with SimulatorExtensionsProvider;
    provides ISimulationLockExecutor with SimulationLockExecutorProvider;

    requires transitive de.renew.util;
    requires java.sql;
    requires ch.qos.reload4j;
}
