import { Encoding } from "../../Encoding";
import { EncodingSampler } from "../../EncodingSampler";
import { Crossover } from "../crossover/Crossover";
export declare abstract class Procreation<E extends Encoding> {
    private _crossover;
    private _mutateFunction;
    private _sampler;
    constructor(crossover: Crossover<E>, mutateFunction: (sampler: EncodingSampler<E>, encoding: E) => E, sampler: EncodingSampler<E>);
    abstract generateOffspringPopulation(populationSize: number, population: E[]): E[];
    get crossover(): Crossover<E>;
    get sampler(): EncodingSampler<E>;
    get mutateFunction(): (sampler: EncodingSampler<E>, encoding: E) => E;
}
//# sourceMappingURL=Procreation.d.ts.map