/**
 * 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 reviver
     * @param {function (RLStepResult): number} reviver Reward reviver function that returns modified reward value
     */
    set rewardReviver(reviver: (arg0: RLStepResult) => number);
    _rewardReviver: (arg0: RLStepResult) => number;
    /**
     * 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 {RLStepResult} state, reward, done
     */
    step(action: any[], agent: any): RLStepResult;
    /**
     * 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 {RLStepResult} state, reward, done
     */
    test(state: any[], action: any[], agent: any): RLStepResult;
    /**
     * Sample an action.
     * @param {*} agent Agent
     * @returns {*[]} Sampled action
     */
    sample_action(agent: any): any[];
}
export class RLStepResult {
    /**
     * @param {RLEnvironmentBase} env Environment
     * @param {*[]} state State
     * @param {number} reward Reward
     * @param {boolean} done Done
     * @param {boolean} invalid Invalid action
     */
    constructor(env: RLEnvironmentBase, state: any[], reward: number, done: boolean, invalid: boolean);
    _env: RLEnvironmentBase;
    _state: any[];
    _reward: number;
    _done: boolean;
    _invalid: boolean;
    /**
     * State
     * @type {*[]}
     */
    get state(): any[];
    /**
     * Reward
     * @type {number}
     */
    get reward(): number;
    /**
     * Done
     * @type {boolean}
     */
    get done(): boolean;
    /**
     * Invalid action
     * @type {boolean}
     */
    get invalid(): boolean;
}
/**
 * Empty environment
 */
export default class EmptyRLEnvironment extends RLEnvironmentBase {
    actions: any[];
    states: any[];
    reward: any;
    reset(): any[];
    state(): any[];
    setState(): void;
    test(): RLStepResult;
}
