import { LevelStage, StageType } from "isaac-typescript-definitions";
import type { StageHistoryEntry } from "../../../interfaces/StageHistoryEntry";
import { Feature } from "../../private/Feature";
export declare class StageHistory extends Feature {
    private readonly postNewLevelReordered;
    /**
     * Helper function to get the stage type that a trapdoor or heaven door would take the player to,
     * based on the current stage, room, and game state flags.
     *
     * This function accounts for the previous floors that a player has visited thus far on the run so
     * that the next stage type can be properly calculated on The Ascent (which makes it unlike the
     * `getNextStageType` function).
     *
     * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
     *
     * @param upwards Whether the player should go up to Cathedral in the case of being on Womb 2.
     *                Default is false.
     * @public
     */
    getNextStageTypeWithHistory(upwards?: boolean): StageType;
    /**
     * Helper function to get the stage that a trapdoor or heaven door would take the player to, based
     * on the current stage, room, and game state flags.
     *
     * This function accounts for the previous floors that a player has visited thus far on the run so
     * that the next stage can be properly calculated on The Ascent (which makes it unlike the
     * `getNextStage` function).
     *
     * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
     */
    getNextStageWithHistory(): LevelStage;
    /**
     * Helper function to get all of the stages that a player has visited thus far on this run.
     *
     * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
     *
     * @public
     */
    getStageHistory(): readonly StageHistoryEntry[];
    /**
     * Helper function to check if a player has previous visited a particular stage (or stage + stage
     * type combination) on this run.
     *
     * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
     *
     * @param stage The stage to check for.
     * @param stageType Optional. If provided, will check for a specific stage and stage type
     *                  combination.
     */
    hasVisitedStage(stage: LevelStage, stageType?: StageType): boolean;
}
//# sourceMappingURL=StageHistory.d.ts.map