interface ReduceNumberDigitsAttrs {
    sumRecursively?: boolean;
    stopNumbers?: number[];
}
type LetterSumResult = {
    vowelSum: number;
    consonantSum: number;
    totalSum: number;
};
type NumberReducer = (number: number) => number;
declare const reduceNumberDigits: ({ sumRecursively, stopNumbers }?: ReduceNumberDigitsAttrs) => NumberReducer;
declare const getLetterValue: (letter: string) => number;
declare const cleanString: (str: string) => string;
declare const getLetterSumFromWord: (word: string, numberReducer: NumberReducer) => LetterSumResult;
declare const getLetterSumFromString: (str: string, reduceNumberAttrs?: ReduceNumberDigitsAttrs) => LetterSumResult;
declare const repeatArrayElements: <T>(originalArray: T[], elementsAmount: number) => T[];
declare const generateExpandedNames: (str: string, expansionLimit: number) => string[];
declare const generateExpandedLetterCount: (str: string[]) => number[];
declare const getDaysInMonth: (year: number, month: number) => number[];

interface ITantricProfileConstructor {
    day: number;
    month: number;
    year: number;
}
declare class TantricProfile {
    readonly day: number;
    readonly month: number;
    readonly year: number;
    readonly soul: number;
    readonly karma: number;
    readonly divineGift: number;
    readonly lastLife: number;
    readonly path: number;
    private readonly tantricSumOptions;
    private readonly numberReducer;
    constructor({ day, month, year }: ITantricProfileConstructor);
}

interface IPythagoreanProfileConstructor {
    day: number;
    month: number;
    year: number;
    names: string;
    fatherLastNames: string;
    motherLastNames: string;
}
declare class PythagoreanProfile {
    readonly day: number;
    readonly month: number;
    readonly year: number;
    readonly names: string;
    readonly fatherLastNames: string;
    readonly motherLastNames: string;
    readonly completeName: string;
    readonly completeNameSumResult: LetterSumResult;
    readonly soul: number;
    readonly personality: number;
    readonly expression: number;
    readonly cosmicMission: number;
    readonly balance: number;
    readonly strength: number;
    readonly spiritualInitiation: number;
    readonly lifePath: number;
    readonly pythagoreanSumOptions: ReduceNumberDigitsAttrs;
    readonly numberReducer: NumberReducer;
    constructor({ day, month, year, names, fatherLastNames, motherLastNames }: IPythagoreanProfileConstructor);
    private getCompleteNameInitialsSum;
}
interface IPythagoreanPinnacleConstructor {
    day: number;
    month: number;
    year: number;
}
declare class PythagoreanPinnacle {
    readonly month: number;
    readonly day: number;
    readonly year: number;
    readonly karma: number;
    readonly personal: number;
    readonly pastLife: number;
    readonly personality: number;
    readonly firstRealization: number;
    readonly secondRealization: number;
    readonly thirdRealization: number;
    readonly fourthRealization: number;
    readonly destiny: number;
    readonly subconscious: number;
    readonly unconscious: number;
    readonly firstGoal: number;
    readonly secondGoal: number;
    readonly thirdGoal: number;
    readonly fourthGoal: number;
    readonly negativeUnconscious: number;
    readonly shadow: number;
    readonly familyInferiorBeing: number;
    readonly consciousInferiorBeing: number;
    readonly latentInferiorBeing: number;
    readonly absences: number[];
    readonly triplicities: number[];
    readonly firstLifeStage: number;
    readonly secondLifeStage: number;
    readonly thirdLifeStage: number;
    private readonly pythagoreanPinnacleSumOptions;
    private readonly numberReducer;
    constructor({ day, month, year }: IPythagoreanPinnacleConstructor);
    private calculateAbsences;
    private calculateTriplicities;
}

interface IDestinyTableConstructor {
    day: number;
    month: number;
    year: number;
    names: string;
    fatherLastNames: string;
    motherLastNames: string;
    yearExpansionLimit?: number;
}
declare class DestinyTable {
    readonly day: number;
    readonly month: number;
    readonly year: number;
    readonly names: string;
    readonly fatherLastNames: string;
    readonly motherLastNames: string;
    readonly expandedYears: number[];
    readonly expandedAge: number[];
    readonly expandedMentalPlane: string[];
    readonly expandedMentalPlaneLetterValues: number[];
    readonly expandedMentalPlaneLetterCount: number[];
    readonly expandedPhysicalPlane: string[];
    readonly expandedPhysicalPlaneLetterValues: number[];
    readonly expandedPhysicalPlaneLetterCount: number[];
    readonly expandedEmotionalPlane: string[];
    readonly expandedEmotionalPlaneLetterValues: number[];
    readonly expandedEmotionalPlaneLetterCount: number[];
    readonly expandedSpiritualPlane: number[];
    readonly expandedDestinyNumber: number[];
    readonly expandedPersonalYears: number[];
    readonly expandedRealizationNumbers: string[];
    readonly expandedCrisisPeriods: number[];
    readonly destinyTableSumOptions: ReduceNumberDigitsAttrs;
    readonly numberReducer: NumberReducer;
    readonly yearExpansionLimit: number;
    private readonly DEFAULT_YEAR_EXPANSION_LIMIT;
    constructor({ day, month, year, names, fatherLastNames, motherLastNames, yearExpansionLimit, }: IDestinyTableConstructor);
    private generateCrisisPeriods;
    private generateExpandedRealizationNumbers;
}

interface IEvolutiveProfileConstructor {
    day: number;
    month: number;
    year: number;
    names: string;
    fatherLastNames: string;
    motherLastNames: string;
}
type EvolutiveNumbers = [number, number, number, number, number, number, number, number, number];
declare class EvolutiveProfile {
    readonly day: number;
    readonly month: number;
    readonly year: number;
    readonly names: string;
    readonly fatherLastNames: string;
    readonly motherLastNames: string;
    readonly completeName: string;
    readonly completeNameChars: number;
    readonly residents: EvolutiveNumbers;
    readonly personalYears: EvolutiveNumbers;
    readonly evolutiveSumOptions: ReduceNumberDigitsAttrs;
    readonly numberReducer: NumberReducer;
    constructor({ day, month, year, names, fatherLastNames, motherLastNames }: IEvolutiveProfileConstructor);
    /**
     * Generates the residents (repeated times of a letter value) starting from the 1 to the 9
     *
     * @param {string} cleanCompleteNameWithoutSpaces - The complete name without spaces or accents
     * @returns {EvolutiveNumbers} The 9 length array from values from 1 to 9 of the repeated values
     */
    private getResidents;
    /**
     * Generates the personal years, but considering the "master numbers". This starts based on the birthYear,
     * and should be matched manually with the residents.
     *
     * @param {number} day - The day of birth of the user
     * @param {number} month - The month of birth of the user
     * @param {number} year - The year of birth of the user
     * @returns {EvolutiveNumbers} The 9 length array from values from 1 to 9 (may include 11 or 22),
     *    starting with the personal year of the user
     */
    private getPersonalYears;
}

interface IBase22ProfileConstructor {
    day: number;
    month: number;
    year: number;
}
declare class Base22Profile {
    readonly day: number;
    readonly month: number;
    readonly year: number;
    readonly deepPersonality: number;
    readonly emotionalKnot: number;
    readonly emotionalSearch: number;
    readonly internalSocialBehavior: number;
    readonly externalSocialBehavior: number;
    readonly externalSocialPersonality: number;
    readonly harmonySearch: number;
    readonly spiritualSearch: number;
    readonly resistanceNumber: number;
    readonly emerge: number;
    readonly painKnot: number;
    readonly internalDefenseBehavior: number;
    readonly externalDefenseBehavior: number;
    readonly externalDefensePersonality: number;
    readonly externalExitSearch: number;
    readonly escapeNumber: number;
    readonly firstSpiritualBaseA: number;
    readonly firstSpiritualBaseB: number;
    readonly firstSpiritualBaseC: number;
    readonly secondSpiritualBaseA: number;
    readonly secondSpiritualBaseB: number;
    readonly secondSpiritualBaseC: number;
    readonly thirdSpiritualBaseA: number;
    readonly base22SumOptions: ReduceNumberDigitsAttrs;
    readonly numberReducer: NumberReducer;
    readonly reducedDay: number;
    readonly reducedMonth: number;
    readonly reducedYear: number;
    constructor({ day, month, year }: IBase22ProfileConstructor);
    private getResistanceNumber;
}

interface IDiamondProfileConstructor {
    day: number;
    month: number;
    year: number;
}
declare class DiamondProfile extends Base22Profile {
    readonly starFacet: number;
    readonly radiationSource: number;
    readonly reflect: number;
    readonly keyResource: number;
    readonly diamondSumOptions: ReduceNumberDigitsAttrs;
    readonly numberReducer: NumberReducer;
    constructor({ day, month, year }: IDiamondProfileConstructor);
}

interface IPlannerProfileConstructor {
    day: number;
    month: number;
    year: number;
    consultingYear: number;
    consultingMonth: number;
}
type PlannerDay = {
    calendarDay: number;
    personalDay: number;
    universalDay: number;
};
declare class PlannerProfile {
    readonly consultingYear: number;
    readonly consultingMonth: number;
    readonly day: number;
    readonly month: number;
    readonly year: number;
    readonly annualVibration: number;
    readonly universalVibration: number;
    readonly personalVibration: number;
    readonly plannerDays: (PlannerDay | null)[];
    readonly plannerSumOptions: ReduceNumberDigitsAttrs;
    readonly numberReducer: NumberReducer;
    constructor({ day, month, year, consultingYear, consultingMonth }: IPlannerProfileConstructor);
}

export { Base22Profile, DestinyTable, DiamondProfile, EvolutiveNumbers, EvolutiveProfile, IBase22ProfileConstructor, IDestinyTableConstructor, IDiamondProfileConstructor, IEvolutiveProfileConstructor, IPlannerProfileConstructor, IPythagoreanPinnacleConstructor, IPythagoreanProfileConstructor, ITantricProfileConstructor, LetterSumResult, NumberReducer, PlannerProfile, PythagoreanPinnacle, PythagoreanProfile, ReduceNumberDigitsAttrs, TantricProfile, cleanString, generateExpandedLetterCount, generateExpandedNames, getDaysInMonth, getLetterSumFromString, getLetterSumFromWord, getLetterValue, reduceNumberDigits, repeatArrayElements };
