import { ImageAssets } from '../models/assets/ImageAssets';
import { StatProperty } from '../models/StatProperty';
import { CodexType } from '../types';
/**
 * Class of Monster
 */
export declare class Monster {
    /**
     * Monster ID
     */
    readonly id: number;
    /**
     * Monster level
     */
    readonly level: number;
    /**
     * Monster Internal name
     */
    readonly internalName: string;
    /**
     * Monster name
     */
    readonly name: string;
    /**
     * Monster Preview name
     */
    readonly describeName: string;
    /**
     * Monster description
     */
    readonly description: string;
    /**
     * Monster Preview icon
     */
    readonly icon: ImageAssets | undefined;
    /**
     * Monster stats
     */
    readonly stats: StatProperty[];
    /**
     * Monster type
     */
    readonly codexType: CodexType | undefined;
    /**
     * Create a Monster
     * @param monsterId monster ID
     * @param level monsterLevel (1-100). Default: 1
     * @param playerCount Number of players (1-4). Default: 1
     */
    constructor(monsterId: number, level?: number, playerCount?: number);
    /**
     * Get all monster IDs
     * @returns All monster IDs
     */
    static get allMonsterIds(): number[];
    /**
     * find monster ID by describe ID
     * @param describeId Describe ID
     * @returns monster ID
     */
    static findMonsterIdByDescribeId(describeId: number): number;
    /**
     * Get monster's stat value by stat type
     * @param propGrowCurve monsterExcelConfigData.propGrowCurves
     * @param initValue Initial value
     * @param playerCount Number of players
     * @returns Stat value
     */
    private getStatValueByJson;
}
