import { INumberIterator } from "../internal_modules";
import { ParamValues } from "../internal_modules";
/**
 * Itérateur miroir sur les (ou la) valeurs prises par un ParamValues.
 * Différent d'un ParamValuesIterator avec reverse = true.
 *
 * ex: min = 0, max = 10, step = 3
 * ParamValuesIterator:         [ 0, 3, 6, 9, 10 ]
 * ParamValuesIterator reverse: [ 10, 7, 4, 1, 0 ]
 * MirrorIterator:              [ 10, 9, 6, 3, 0 ]
 */
export declare class MirrorIterator implements INumberIterator {
    /** paramètre à itérer */
    private _param;
    /** valeur courante */
    private _current;
    /** index sur la liste de valeurs locales */
    private _index;
    /** liste des valeurs généres par l'itérateur du ParamValues, dans l'ordre inverse */
    private _valuesList;
    constructor(prm: ParamValues);
    get currentValue(): number;
    /**
     * Returns the number of elements in the iterator without altering it,
     * by counting a copy of the iterator
     */
    count(): number;
    /**
     * Reinits the value iterator
     */
    reset(): void;
    next(): IteratorResult<number>;
    /** trick method - use .next() instead, unless you are explicitely in jalhyd#222 case */
    nextValue(): IteratorResult<number>;
    [Symbol.iterator](): IterableIterator<number>;
    /**
     * Returns true if iterator has at least one more value
     */
    get hasNext(): boolean;
}
//# sourceMappingURL=mirror-iterator.d.ts.map