package at.oefai.aaa.agent.jam;

import java.util.List;

import at.oefai.aaa.agent.jam.types.Value;

/**
 * The basic interface for an environment, providing perceptions for each agent, and action requests.
 * @author Stefan Rank
 */
public interface IEnvironment {
    /**
     * Interface for synchronizing an agen's inner worldmodel with the environment.
     * @param agentName
     * @return list of WorldModelTableEvents ordered oldest first
     */
    WorldModelTableEvent[] getPerceptionsOf(final String agentName);

    boolean requestAction(final String actor, final String actionName, final List<Value> arguments);
}
