import { FloatingIndividual } from '../../../individual/numeric/floating';
import { BaseCrossover, CrossoverParams } from '../../base';
export interface BaseFloatingCrossoverParams extends CrossoverParams<FloatingIndividual, number> {
    alpha: number;
}
export declare abstract class BaseFloatingCrossover extends BaseCrossover<FloatingIndividual, number, BaseFloatingCrossoverParams> {
    protected recombinationPoint: number;
    cross(firstParent: FloatingIndividual, secondParent: FloatingIndividual, alpha?: number, engine?: import("random-js").Engine): FloatingIndividual[];
    crossWith(firstParent: FloatingIndividual, secondParent: FloatingIndividual, params: BaseFloatingCrossoverParams): FloatingIndividual[];
    protected getGenotypeValues(firstParent: FloatingIndividual, secondParent: FloatingIndividual, params: BaseFloatingCrossoverParams, index: number): {
        first: number;
        second: number;
    };
    protected abstract getRecombinationCondition(index: number): boolean;
    protected getRecombinationValue(firstParentValue: number, secondParentValue: number, params: BaseFloatingCrossoverParams): number;
    private checkParams;
    private generateRecombinationPoint;
}
