import { MutableIndividual } from '../../individual/base';
import { Mutation, MutationParams as MutationBaseParams } from './Mutation';
export declare abstract class MutationBase<I extends MutableIndividual<T>, T, Params extends MutationBaseParams> implements Mutation<I, T, Params> {
    mutateWith(individual: I, params: Params): void;
    abstract mutate(individual: I, ...args: any[]): void;
    protected abstract mutateGene(individual: I, index: number, params: Params): void;
}
export { MutationBaseParams };
