import { NumericIndividual, NumericRange } from '../base';
/**
 * ## Integer individual
 * Integer individual is a numeric individual
 * where all the genes in the genotype are integers.
 */
export declare class IntegerIndividual extends NumericIndividual {
    /**
     * Constructor of the class.
     * Takes the representation as
     * an array of numbers or a string
     * and an optional range.
     * @param representation of the individual.
     * @param range of the individual, if not provided
     *        is the default range.
     */
    constructor(representation: number[] | string, range?: NumericRange);
    /**
     * Copy other individual into the current.
     * Creates a shallow copy, with the references
     * only.
     * @param other individual to copy
     */
    copy(other: IntegerIndividual): void;
    /**
     * Creates a deep copy of the other individual
     * in the current.
     * @param other individual to copy.
     */
    deepCopy(other: IntegerIndividual): void;
    /**
     * Fill the genotype with the specified gene.
     * @param gene we want to fill the genotype with.
     *        if it is not an integer it will be normalized.
     * @param start position.
     * @param end position.
     * @throws RangeError if gene is not in range.
     */
    fill(gene: number, start?: number, end?: number): void;
    /**
     * Creates a new genotype with the result of
     * the execution of the specified callback for each
     * element.
     * Result of the callback will be normalized to
     * an integer if it is not.
     * @param callback called for each gene.
     * @throws RangeError if callback result is not in range.
     */
    map(callback: (gene: number, geneIndex?: number, genotype?: number[]) => number): void;
    /**
     * Sets the gene at specified index to
     * the specified value.
     * @param geneIndex index of the gene to be set.
     *        if it is not an integer it will be normalized.
     * @param gene new value of the gene.
     * @throws RangeError if gene is not in range.
     */
    set(geneIndex: number, gene: number): void;
}
