import type { PartyRole } from "../game/partyRoles"; export interface DungeonShellRuntime { enterDungeon: (dungeonId: string, playerRole?: PartyRole, settings?: DungeonEntrySettings) => boolean; } export interface DungeonEntrySettings { readonly biteSizedSelection?: import("../../shared/bite-sized-layouts.mjs").BiteSizedRunSelection; readonly difficultyId?: string; readonly bossDifficulty?: number; readonly freshRun?: boolean; readonly runId?: string; readonly raceStartBlocked?: boolean; } let installedRuntime: DungeonShellRuntime | null = null; export function registerDungeonShellRuntime(runtime: DungeonShellRuntime): void { installedRuntime = runtime; } export function dungeonShellRuntime(): DungeonShellRuntime | null { return installedRuntime; }