import { DiceAndSex, DNA, Genders, ILinkRace, IRace } from "@opendnd/core";
import { IGeneticaDefaults } from "./defaults";
import "./extensions";
export interface IGeneticaOpts {
    defaults?: IGeneticaDefaults;
    race?: ILinkRace;
    gender?: Genders;
    mutation?: string;
}
declare class Genetica {
    static load(filepath: any): any;
    static loadSeed(filepath: any): any;
    defaults: IGeneticaDefaults;
    opts: IGeneticaOpts;
    race: IRace;
    gender: Genders;
    constructor(opts?: IGeneticaOpts);
    validateOpts(opts?: IGeneticaOpts): IGeneticaOpts;
    resetOpts(): void;
    mapChromosomesToOpts(chromosomes?: {}): {};
    generateChildChromosomes(motherChromosomes?: {}, fatherChromosomes?: {}): {
        1?: DiceAndSex;
        2?: DiceAndSex;
        3?: DiceAndSex;
        4?: DiceAndSex;
        5?: DiceAndSex;
        6?: DiceAndSex;
        7?: DiceAndSex;
        8?: DiceAndSex;
        9?: DiceAndSex;
        10?: DiceAndSex;
        11?: DiceAndSex;
        12?: DiceAndSex;
        13?: DiceAndSex;
        14?: DiceAndSex;
        15?: DiceAndSex;
        16?: DiceAndSex;
        17?: DiceAndSex;
        18?: DiceAndSex;
        19?: DiceAndSex;
        20?: DiceAndSex;
        21?: DiceAndSex;
        22?: DiceAndSex;
        23?: DiceAndSex;
        24?: DiceAndSex;
        25?: DiceAndSex;
        26?: DiceAndSex;
        27?: DiceAndSex;
        28?: DiceAndSex;
        29?: DiceAndSex;
        30?: DiceAndSex;
        31?: DiceAndSex;
        32?: DiceAndSex;
    };
    generateParentChromosomes(childChromosomes?: {}): {
        fatherChromosomes: {};
        motherChromosomes: {};
    };
    generateChromosomes(): {
        1?: DiceAndSex;
        2?: DiceAndSex;
        3?: DiceAndSex;
        4?: DiceAndSex;
        5?: DiceAndSex;
        6?: DiceAndSex;
        7?: DiceAndSex;
        8?: DiceAndSex;
        9?: DiceAndSex;
        10?: DiceAndSex;
        11?: DiceAndSex;
        12?: DiceAndSex;
        13?: DiceAndSex;
        14?: DiceAndSex;
        15?: DiceAndSex;
        16?: DiceAndSex;
        17?: DiceAndSex;
        18?: DiceAndSex;
        19?: DiceAndSex;
        20?: DiceAndSex;
        21?: DiceAndSex;
        22?: DiceAndSex;
        23?: DiceAndSex;
        24?: DiceAndSex;
        25?: DiceAndSex;
        26?: DiceAndSex;
        27?: DiceAndSex;
        28?: DiceAndSex;
        29?: DiceAndSex;
        30?: DiceAndSex;
        31?: DiceAndSex;
        32?: DiceAndSex;
    };
    generateHeightAndWeight(race: IRace): {
        height: any;
        weight: number;
    };
    generateTraits(chromosomes?: {}): {};
    generateChild(opts: IGeneticaOpts, motherDNA: DNA, fatherDNA: DNA): DNA;
    generateParents(childDNA: DNA): {
        fatherDNA: DNA;
        motherDNA: DNA;
    };
    generate(opts?: IGeneticaOpts): DNA;
}
export default Genetica;
