/**
 * Interim step for an event reward system.
 * @typedef {object} InterimStep
 * @property {number} goal          Goal amount
 * @property {Reward} reward        Reward for reaching the step
 * @property {number} winnerCount   Amount of players at this step
 * @property {object} message       Message received when reaching the interim step
 */
/**
 * Progress for one of multiple stages
 * @typedef {object} ProgressStep
 * @property {string} type         Type of progress
 * @property {number} progressAmt Amount of progress
 */
/**
 * Represents an in-game special event
 * @augments {WorldstateObject}
 */
export default class WorldEvent extends WorldstateObject {
    /**
     * Asynchronously build a new WorldEvent
     * @param   {object}            data            The event data
     * @param   {object}            deps            The dependencies object
     * @param   {string}            deps.locale     Locale to use for translations
     * @returns {Promise.<WorldEvent>}              The created WorldEvent object
     */
    static build(data: object, deps: {
        locale: string;
    }): Promise<WorldEvent>;
    /**
     * @param   {object}            data            The event data
     * @param   {object}            deps            The dependencies object
     * @param   {string}            deps.locale     Locale to use for translations
     */
    constructor(data: object, { locale }?: {
        locale: string;
    });
    /**
     * The event's main score goal
     * @type {number}
     */
    maximumScore: number;
    /**
     * The current score on the event
     * @type {number}
     */
    currentScore: number;
    /**
     * The first intermediate score goal
     * @type {?number}
     */
    smallInterval: number | null;
    /**
     * The second intermediate score goal
     * @type {?number}
     */
    largeInterval: number | null;
    /**
     * The faction that the players must fight in the event
     * @type {string}
     */
    faction: string;
    /**
     * The description of the event
     * @type {string}
     */
    description: string;
    /**
     * Tooltip for the event
     * @type {?string}
     */
    tooltip: string | null;
    /**
     * The node where the event takes place
     * @type {?string}
     */
    node: string | null;
    /**
     * The other nodes where the event takes place
     * @type {string[]}
     */
    concurrentNodes: string[];
    /**
     * The victim node
     * @type {?string}
     */
    victimNode: string | null;
    /**
     * The score description
     * @type {?string}
     */
    scoreLocTag: string | null;
    /**
     * The event's rewards
     * @type {Reward[]}
     */
    rewards: Reward[];
    /**
     * Whether or not this is expired (at time of object creation)
     * @type {boolean}
     */
    expired: boolean;
    /**
     * Health remaining for the target
     * @type {number}
     */
    health: number;
    jobs: any[];
    previousJobs: any[];
    /**
     * Previous job id
     * @type {string}
     */
    previousId: string;
    /**
     * Array of steps
     * @type {InterimStep[]}
     */
    interimSteps: InterimStep[];
    /**
     * Progress Steps, if any are present
     * @type {ProgressStep[]}
     */
    progressSteps: ProgressStep[];
    /**
     * Total of all MultiProgress
     * @type {number}
     */
    progressTotal: number;
    /**
     * Whether to show the total score at the end of the mission
     * @type {boolean}
     */
    showTotalAtEndOfMission: boolean;
    /**
     * Whether the event is personal
     * @type {boolean}
     */
    isPersonal: boolean;
    /**
     * Whether the event is community
     * @type {boolean}
     */
    isCommunity: boolean;
    regionDrops: any;
    /**
     * Archwing Drops in effect while this event is active
     * @type {string[]}
     */
    archwingDrops: string[];
    asString: string;
    /**
     * Metadata provided by DE
     * @type {object}
     */
    metadata: object;
    /**
     * Bonuses given for completion
     * @type {Array.<number>}
     */
    completionBonuses: Array<number>;
    scoreVar: any;
    altExpiry: any;
    altActivation: any;
    nextAlt: {
        expiry: any;
        activation: any;
    };
    affiliatedWith: any;
    /**
     * The event's tag
     * @type {string}
     */
    tag: string;
    /**
     * Get whether the event has expired
     * @returns {boolean} whether the event has expired
     */
    getExpired(): boolean;
}
/**
 * Interim step for an event reward system.
 */
export type InterimStep = {
    /**
     * Goal amount
     */
    goal: number;
    /**
     * Reward for reaching the step
     */
    reward: Reward;
    /**
     * Amount of players at this step
     */
    winnerCount: number;
    /**
     * Message received when reaching the interim step
     */
    message: object;
};
/**
 * Progress for one of multiple stages
 */
export type ProgressStep = {
    /**
     * Type of progress
     */
    type: string;
    /**
     * Amount of progress
     */
    progressAmt: number;
};
import WorldstateObject from './WorldstateObject.js';
import Reward from './Reward.js';
