import { BaseIndividual } from '../../individual/base/BaseIndividual';
import { Population } from '../../population/Population';
import { IndividualsSelection, IndividualsSelectionParams as BaseSelectionParams } from './IndividualsSelection';
export declare abstract class BaseSelection<I extends BaseIndividual<T>, T> implements IndividualsSelection<I, T, BaseSelectionParams> {
    abstract selectWith(population: Population<I, T>, params: BaseSelectionParams): I[];
    protected checkParams(population: Population<I, T>, params: BaseSelectionParams): void;
}
export { BaseSelectionParams };
