/**
 * Real number range state/actioin
 */
export class RLRealRange {
    /**
     * @param {number} min Minimum value
     * @param {number} max Maximum value
     */
    constructor(min: number, max: number);
    min: number;
    max: number;
    /**
     * Returns spaces.
     * @param {number} resolution Resolution value
     * @returns {number[]} Representative value
     */
    toSpace(resolution: number): number[];
    /**
     * Returns array.
     * @param {number} resolution Resolution value
     * @returns {number[]} Array of center values
     */
    toArray(resolution: number): number[];
    /**
     * Returns index of the value.
     * @param {number} value Check value
     * @param {number} resolution Resolution value
     * @returns {number} Index of the value
     */
    indexOf(value: number, resolution: number): number;
}
/**
 * Integer number range state/actioin
 */
export class RLIntRange {
    /**
     * @param {number} min Minimum value
     * @param {number} max Maximum value
     */
    constructor(min: number, max: number);
    min: number;
    max: number;
    /**
     * Length
     * @type {number}
     */
    get length(): number;
    /**
     * Returns array.
     * @param {number} resolution Resolution value
     * @returns {number[]} Representative value
     */
    toArray(resolution: number): number[];
    /**
     * Returns index of the value.
     * @param {number} value Check value
     * @param {number} resolution Resolution value
     * @returns {number} Index of the value
     */
    indexOf(value: number, resolution: number): number;
}
/**
 * Base class for reinforcement learning environment
 * @property {(*[] | RLRealRange | RLIntRange)[]} actions Action variables
 * @property {(*[] | RLRealRange | RLIntRange)[]} states States variables
 */
export class RLEnvironmentBase {
    _epoch: number;
    /**
     * Epoch
     * @type {number}
     */
    get epoch(): number;
    /**
     * Reward
     * @param {object} value Reward object
     */
    set reward(value: any);
    /**
     * Returns cloned environment.
     * @returns {RLEnvironmentBase} Cloned environment
     */
    clone(): RLEnvironmentBase;
    /**
     * Reset environment.
     */
    reset(): void;
    /**
     * Returns current state.
     * @param {*} agent Agent
     * @returns {*[]} Current state
     */
    state(agent: any): any[];
    /**
     * Set new state.
     * @param {*[]} state New state
     * @param {*} agent Agent
     */
    setState(state: any[], agent: any): void;
    /**
     * Do action and returns new state.
     * @param {*[]} action Actions to be performed by the agent
     * @param {*} agent Agent
     * @returns {{state: *[], reward: number, done: boolean, invalid?: boolean}} state, reward, done
     */
    step(action: any[], agent: any): {
        state: any[];
        reward: number;
        done: boolean;
        invalid?: boolean;
    };
    /**
     * Do actioin without changing environment and returns new state.
     * @param {*[]} state Environment state
     * @param {*[]} action Actions to be performed by the agent
     * @param {*} agent Agent
     * @returns {{state: *[], reward: number, done: boolean, invalid?: boolean}} state, reward, done
     */
    test(state: any[], action: any[], agent: any): {
        state: any[];
        reward: number;
        done: boolean;
        invalid?: boolean;
    };
    /**
     * Sample an action.
     * @param {*} agent Agent
     * @returns {*[]} Sampled action
     */
    sample_action(agent: any): any[];
}
/**
 * Empty environment
 */
export default class EmptyRLEnvironment extends RLEnvironmentBase {
    actions: any[];
    states: any[];
    reset(): any[];
    state(): any[];
    setState(): void;
    test(): {
        state: any[];
        reward: number;
        done: boolean;
    };
}
