import { Hero } from './enums/Hero';
import { FlaggedProp, Omit } from '../../../helpers/types';
import { Behavior } from '../constants';
export declare type StartingHero = {
    isRandom: boolean;
    hero: Hero.NONE;
    face: number;
    name: string;
} | {
    isRandom: boolean;
    hero: Hero;
    face: number;
    name: string;
    additionaInfo: {
        heroesCount: number;
        heroes: {
            hero: Hero;
            name: string;
        }[];
    };
};
export declare type StartingHeroRoE = {
    isRandom: boolean;
    hero: Hero.NONE;
} | {
    isRandom: boolean;
    hero: Hero;
    face: number;
    name: string;
};
export declare type MainTown = FlaggedProp<'hasMainTown', 'mainTown', {
    createHero: number;
    type: number;
    x: number;
    y: number;
    z: number;
}>;
export declare type MainTownRoE = FlaggedProp<'hasMainTown', 'mainTown', {
    x: number;
    y: number;
    z: number;
}>;
export declare type PlayerData = {
    canBeHuman: boolean;
    canBeComputer: boolean;
    behavior: Behavior;
    allowedAlignments: number;
    townTypes: number;
    townConflux: number;
    hasRandomTown: boolean;
    startingHero: StartingHero;
} & MainTown;
export declare type PlayerDataRoE = {
    canBeHuman: boolean;
    canBeComputer: boolean;
    behavior: Behavior;
    townTypes: number;
    hasRandomTown: boolean;
    startingHero: StartingHeroRoE;
} & MainTownRoE;
export declare type PlayerDataAb = Omit<PlayerData, 'allowedAlignments'>;
