declare module "packages/appeng/menu/me/common/$MEStorageMenu" {
import {$IConfigManager, $IConfigManager$Type} from "packages/appeng/api/util/$IConfigManager"
import {$NonNullList, $NonNullList$Type} from "packages/net/minecraft/core/$NonNullList"
import {$IClientRepo, $IClientRepo$Type} from "packages/appeng/menu/me/common/$IClientRepo"
import {$InventoryAction, $InventoryAction$Type} from "packages/appeng/helpers/$InventoryAction"
import {$Setting, $Setting$Type} from "packages/appeng/api/config/$Setting"
import {$AEKey, $AEKey$Type} from "packages/appeng/api/stacks/$AEKey"
import {$Ingredient, $Ingredient$Type} from "packages/net/minecraft/world/item/crafting/$Ingredient"
import {$Slot, $Slot$Type} from "packages/net/minecraft/world/inventory/$Slot"
import {$ContainerListener, $ContainerListener$Type} from "packages/net/minecraft/world/inventory/$ContainerListener"
import {$IGridNode, $IGridNode$Type} from "packages/appeng/api/networking/$IGridNode"
import {$MenuType, $MenuType$Type} from "packages/net/minecraft/world/inventory/$MenuType"
import {$ItemStack, $ItemStack$Type} from "packages/net/minecraft/world/item/$ItemStack"
import {$ITerminalHost, $ITerminalHost$Type} from "packages/appeng/api/storage/$ITerminalHost"
import {$AEBaseMenu, $AEBaseMenu$Type} from "packages/appeng/menu/$AEBaseMenu"
import {$Object2IntOpenHashMap, $Object2IntOpenHashMap$Type} from "packages/it/unimi/dsi/fastutil/objects/$Object2IntOpenHashMap"
import {$Set, $Set$Type} from "packages/java/util/$Set"
import {$List, $List$Type} from "packages/java/util/$List"
import {$IConfigurableObject, $IConfigurableObject$Type} from "packages/appeng/api/util/$IConfigurableObject"
import {$ToolboxMenu, $ToolboxMenu$Type} from "packages/appeng/menu/$ToolboxMenu"
import {$IMEInteractionHandler, $IMEInteractionHandler$Type} from "packages/appeng/menu/me/common/$IMEInteractionHandler"
import {$Inventory, $Inventory$Type} from "packages/net/minecraft/world/entity/player/$Inventory"
import {$IConfigManagerListener, $IConfigManagerListener$Type} from "packages/appeng/util/$IConfigManagerListener"

export class $MEStorageMenu extends $AEBaseMenu implements $IConfigManagerListener, $IConfigurableObject, $IMEInteractionHandler {
static readonly "TYPE": $MenuType<($MEStorageMenu)>
static readonly "PORTABLE_ITEM_CELL_TYPE": $MenuType<($MEStorageMenu)>
static readonly "PORTABLE_FLUID_CELL_TYPE": $MenuType<($MEStorageMenu)>
static readonly "WIRELESS_TYPE": $MenuType<($MEStorageMenu)>
 "hasPower": boolean
 "activeCraftingJobs": integer
static readonly "SLOT_CLICKED_OUTSIDE": integer
static readonly "QUICKCRAFT_TYPE_CHARITABLE": integer
static readonly "QUICKCRAFT_TYPE_GREEDY": integer
static readonly "QUICKCRAFT_TYPE_CLONE": integer
static readonly "QUICKCRAFT_HEADER_START": integer
static readonly "QUICKCRAFT_HEADER_CONTINUE": integer
static readonly "QUICKCRAFT_HEADER_END": integer
static readonly "CARRIED_SLOT_SIZE": integer
 "lastSlots": $NonNullList<($ItemStack)>
readonly "slots": $NonNullList<($Slot)>
 "carried": $ItemStack
 "remoteSlots": $NonNullList<($ItemStack)>
 "stateId": integer
 "containerId": integer
 "quickcraftType": integer
 "quickcraftStatus": integer
readonly "quickcraftSlots": $Set<($Slot)>
readonly "containerListeners": $List<($ContainerListener)>

constructor(arg0: $MenuType$Type<(any)>, arg1: integer, arg2: $Inventory$Type, arg3: $ITerminalHost$Type)

public "getHost"(): $ITerminalHost
public "isPowered"(): boolean
public "getNetworkNode"(): $IGridNode
public "isKeyVisible"(arg0: $AEKey$Type): boolean
public "getToolbox"(): $ToolboxMenu
public "handleInteraction"(arg0: long, arg1: $InventoryAction$Type): void
public "getViewCells"(): $List<($ItemStack)>
public "setGui"(arg0: $IConfigManagerListener$Type): void
public "getClientRepo"(): $IClientRepo
public "hasIngredient"(arg0: $Ingredient$Type, arg1: $Object2IntOpenHashMap$Type<(any)>): boolean
public "setClientRepo"(arg0: $IClientRepo$Type): void
public "broadcastChanges"(): void
public "canConfigureTypeFilter"(): boolean
public "getConfigManager"(): $IConfigManager
public "onSettingChanged"(arg0: $IConfigManager$Type, arg1: $Setting$Type<(any)>): void
get "host"(): $ITerminalHost
get "powered"(): boolean
get "networkNode"(): $IGridNode
get "toolbox"(): $ToolboxMenu
get "viewCells"(): $List<($ItemStack)>
set "gui"(value: $IConfigManagerListener$Type)
get "clientRepo"(): $IClientRepo
set "clientRepo"(value: $IClientRepo$Type)
get "configManager"(): $IConfigManager
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $MEStorageMenu$Type = ($MEStorageMenu);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $MEStorageMenu_ = $MEStorageMenu$Type;
}}
declare module "packages/appeng/menu/me/common/$GridInventoryEntry" {
import {$AEKey, $AEKey$Type} from "packages/appeng/api/stacks/$AEKey"

export class $GridInventoryEntry {

constructor(arg0: long, arg1: $AEKey$Type, arg2: long, arg3: long, arg4: boolean)

public "getStoredAmount"(): long
public "isCraftable"(): boolean
public "getWhat"(): $AEKey
public "getSerial"(): long
public "getRequestableAmount"(): long
public "isMeaningful"(): boolean
get "storedAmount"(): long
get "craftable"(): boolean
get "what"(): $AEKey
get "serial"(): long
get "requestableAmount"(): long
get "meaningful"(): boolean
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $GridInventoryEntry$Type = ($GridInventoryEntry);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $GridInventoryEntry_ = $GridInventoryEntry$Type;
}}
declare module "packages/appeng/menu/me/common/$IClientRepo" {
import {$Set, $Set$Type} from "packages/java/util/$Set"
import {$Collection, $Collection$Type} from "packages/java/util/$Collection"
import {$List, $List$Type} from "packages/java/util/$List"
import {$Ingredient, $Ingredient$Type} from "packages/net/minecraft/world/item/crafting/$Ingredient"
import {$GridInventoryEntry, $GridInventoryEntry$Type} from "packages/appeng/menu/me/common/$GridInventoryEntry"

export interface $IClientRepo {

 "getAllEntries"(): $Set<($GridInventoryEntry)>
 "getByIngredient"(arg0: $Ingredient$Type): $Collection<($GridInventoryEntry)>
 "handleUpdate"(arg0: boolean, arg1: $List$Type<($GridInventoryEntry$Type)>): void
}

export namespace $IClientRepo {
const probejs$$marker: never
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $IClientRepo$Type = ($IClientRepo);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $IClientRepo_ = $IClientRepo$Type;
}}
declare module "packages/appeng/menu/$ISubMenu" {
import {$MenuLocator, $MenuLocator$Type} from "packages/appeng/menu/locator/$MenuLocator"
import {$ISubMenuHost, $ISubMenuHost$Type} from "packages/appeng/api/storage/$ISubMenuHost"

export interface $ISubMenu {

 "getHost"(): $ISubMenuHost
 "getLocator"(): $MenuLocator
}

export namespace $ISubMenu {
const probejs$$marker: never
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $ISubMenu$Type = ($ISubMenu);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $ISubMenu_ = $ISubMenu$Type;
}}
declare module "packages/appeng/menu/locator/$MenuLocator" {
import {$Player, $Player$Type} from "packages/net/minecraft/world/entity/player/$Player"
import {$Class, $Class$Type} from "packages/java/lang/$Class"

export interface $MenuLocator {

 "locate"<T>(arg0: $Player$Type, arg1: $Class$Type<(T)>): T

(arg0: $Player$Type, arg1: $Class$Type<(T)>): T
}

export namespace $MenuLocator {
const probejs$$marker: never
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $MenuLocator$Type = ($MenuLocator);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $MenuLocator_ = $MenuLocator$Type;
}}
declare module "packages/appeng/menu/$AEBaseMenu" {
import {$GuiDataSyncPacket, $GuiDataSyncPacket$Type} from "packages/appeng/core/sync/packets/$GuiDataSyncPacket"
import {$ServerPlayer, $ServerPlayer$Type} from "packages/net/minecraft/server/level/$ServerPlayer"
import {$NonNullList, $NonNullList$Type} from "packages/net/minecraft/core/$NonNullList"
import {$InventoryAction, $InventoryAction$Type} from "packages/appeng/helpers/$InventoryAction"
import {$AEBaseMenuAccessor, $AEBaseMenuAccessor$Type} from "packages/gripe/_90/polyeng/mixin/$AEBaseMenuAccessor"
import {$Slot, $Slot$Type} from "packages/net/minecraft/world/inventory/$Slot"
import {$ContainerListener, $ContainerListener$Type} from "packages/net/minecraft/world/inventory/$ContainerListener"
import {$ItemStack, $ItemStack$Type} from "packages/net/minecraft/world/item/$ItemStack"
import {$MenuType, $MenuType$Type} from "packages/net/minecraft/world/inventory/$MenuType"
import {$IActionSource, $IActionSource$Type} from "packages/appeng/api/networking/security/$IActionSource"
import {$Player, $Player$Type} from "packages/net/minecraft/world/entity/player/$Player"
import {$Set, $Set$Type} from "packages/java/util/$Set"
import {$BlockEntity, $BlockEntity$Type} from "packages/net/minecraft/world/level/block/entity/$BlockEntity"
import {$List, $List$Type} from "packages/java/util/$List"
import {$MenuLocator, $MenuLocator$Type} from "packages/appeng/menu/locator/$MenuLocator"
import {$AbstractContainerMenu, $AbstractContainerMenu$Type} from "packages/net/minecraft/world/inventory/$AbstractContainerMenu"
import {$Inventory, $Inventory$Type} from "packages/net/minecraft/world/entity/player/$Inventory"
import {$SlotSemantic, $SlotSemantic$Type} from "packages/appeng/menu/$SlotSemantic"

export class $AEBaseMenu extends $AbstractContainerMenu implements $AEBaseMenuAccessor {
static readonly "SLOT_CLICKED_OUTSIDE": integer
static readonly "QUICKCRAFT_TYPE_CHARITABLE": integer
static readonly "QUICKCRAFT_TYPE_GREEDY": integer
static readonly "QUICKCRAFT_TYPE_CLONE": integer
static readonly "QUICKCRAFT_HEADER_START": integer
static readonly "QUICKCRAFT_HEADER_CONTINUE": integer
static readonly "QUICKCRAFT_HEADER_END": integer
static readonly "CARRIED_SLOT_SIZE": integer
 "lastSlots": $NonNullList<($ItemStack)>
readonly "slots": $NonNullList<($Slot)>
 "carried": $ItemStack
 "remoteSlots": $NonNullList<($ItemStack)>
 "stateId": integer
 "containerId": integer
 "quickcraftType": integer
 "quickcraftStatus": integer
readonly "quickcraftSlots": $Set<($Slot)>
readonly "containerListeners": $List<($ContainerListener)>

constructor(arg0: $MenuType$Type<(any)>, arg1: integer, arg2: $Inventory$Type, arg3: any)

public "getTarget"(): any
public "onServerDataSync"(): void
public "isValidForSlot"(arg0: $Slot$Type, arg1: $ItemStack$Type): boolean
public "onSlotChange"(arg0: $Slot$Type): void
public "setFilter"(arg0: integer, arg1: $ItemStack$Type): void
public "getLocator"(): $MenuLocator
public "stillValid"(arg0: $Player$Type): boolean
public "setLocator"(arg0: $MenuLocator$Type): void
public "getSlots"(arg0: $SlotSemantic$Type): $List<($Slot)>
public "sendAllDataToRemote"(): void
public "quickMoveStack"(arg0: $Player$Type, arg1: integer): $ItemStack
public "initializeContents"(arg0: integer, arg1: $List$Type<($ItemStack$Type)>, arg2: $ItemStack$Type): void
public "getPlayer"(): $Player
public "canDragTo"(arg0: $Slot$Type): boolean
public "isClientSide"(): boolean
public "getBlockEntity"(): $BlockEntity
public "broadcastChanges"(): void
public "swapSlotContents"(arg0: integer, arg1: integer): void
public "receiveClientAction"(arg0: $GuiDataSyncPacket$Type): void
public "lockPlayerInventorySlot"(arg0: integer): void
public "isReturnedFromSubScreen"(): boolean
public "setReturnedFromSubScreen"(arg0: boolean): void
public "removeClientSideSlot"(arg0: $Slot$Type): void
public "isPlayerInventorySlotLocked"(arg0: integer): boolean
public "receiveServerSyncData"(arg0: $GuiDataSyncPacket$Type): void
public "hideSlot"(arg0: string): void
public "getPlayerInventory"(): $Inventory
public "setValidMenu"(arg0: boolean): void
public "isValidMenu"(): boolean
public "addClientSideSlot"(arg0: $Slot$Type, arg1: $SlotSemantic$Type): $Slot
public "isClientSideSlot"(arg0: $Slot$Type): boolean
public "getSlotSemantic"(arg0: $Slot$Type): $SlotSemantic
public "doAction"(arg0: $ServerPlayer$Type, arg1: $InventoryAction$Type, arg2: integer, arg3: long): void
public "getActionSource"(): $IActionSource
get "target"(): any
get "locator"(): $MenuLocator
set "locator"(value: $MenuLocator$Type)
get "player"(): $Player
get "clientSide"(): boolean
get "blockEntity"(): $BlockEntity
get "returnedFromSubScreen"(): boolean
set "returnedFromSubScreen"(value: boolean)
get "playerInventory"(): $Inventory
set "validMenu"(value: boolean)
get "validMenu"(): boolean
get "actionSource"(): $IActionSource
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $AEBaseMenu$Type = ($AEBaseMenu);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $AEBaseMenu_ = $AEBaseMenu$Type;
}}
declare module "packages/appeng/menu/$SlotSemantic" {
import {$Record, $Record$Type} from "packages/java/lang/$Record"

export class $SlotSemantic extends $Record {

constructor(id: string, playerSide: boolean)

public "equals"(arg0: any): boolean
public "toString"(): string
public "hashCode"(): integer
public "id"(): string
public "playerSide"(): boolean
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $SlotSemantic$Type = ($SlotSemantic);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $SlotSemantic_ = $SlotSemantic$Type;
}}
declare module "packages/appeng/menu/$ToolboxMenu" {
import {$Component, $Component$Type} from "packages/net/minecraft/network/chat/$Component"
import {$AEBaseMenu, $AEBaseMenu$Type} from "packages/appeng/menu/$AEBaseMenu"

export class $ToolboxMenu {

constructor(arg0: $AEBaseMenu$Type)

public "getName"(): $Component
public "isPresent"(): boolean
public "tick"(): void
get "name"(): $Component
get "present"(): boolean
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $ToolboxMenu$Type = ($ToolboxMenu);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $ToolboxMenu_ = $ToolboxMenu$Type;
}}
declare module "packages/appeng/menu/me/common/$IMEInteractionHandler" {
import {$InventoryAction, $InventoryAction$Type} from "packages/appeng/helpers/$InventoryAction"

export interface $IMEInteractionHandler {

 "handleInteraction"(arg0: long, arg1: $InventoryAction$Type): void

(arg0: long, arg1: $InventoryAction$Type): void
}

export namespace $IMEInteractionHandler {
const probejs$$marker: never
}
/**
 * Class-specific type exported by ProbeJS, use global Type_
 * types for convenience unless there's a naming conflict.
 */
export type $IMEInteractionHandler$Type = ($IMEInteractionHandler);
/**
 * Global type exported for convenience, use class-specific
 * types if there's a naming conflict.
 */
declare global {
export type $IMEInteractionHandler_ = $IMEInteractionHandler$Type;
}}
