import IMemory from 'modloader64_api/IMemory';
import { JSONTemplate } from 'modloader64_api/JSONTemplate';
import { ILogger } from 'modloader64_api/IModLoaderAPI';
import * as Z64API from '../../API/imports';
export declare class Inventory extends JSONTemplate implements Z64API.OoT.IInventory {
    private emulator;
    private instance;
    private inventory_addr;
    private inventory_ammo_addr;
    private inventory_upgrades_addr;
    private log;
    jsonFields: string[];
    constructor(emu: IMemory, log: ILogger);
    set strength(bb: Z64API.OoT.Strength);
    get strength(): Z64API.OoT.Strength;
    set swimming(bb: Z64API.OoT.ZoraScale);
    get swimming(): Z64API.OoT.ZoraScale;
    set dekuSticksCapacity(bb: Z64API.Z64.AmmoUpgrade);
    get dekuSticksCapacity(): Z64API.Z64.AmmoUpgrade;
    set dekuNutsCapacity(bb: Z64API.Z64.AmmoUpgrade);
    get dekuNutsCapacity(): Z64API.Z64.AmmoUpgrade;
    set bombBag(bb: Z64API.Z64.AmmoUpgrade);
    get bombBag(): Z64API.Z64.AmmoUpgrade;
    get bulletBag(): Z64API.Z64.AmmoUpgrade;
    set bulletBag(bb: Z64API.Z64.AmmoUpgrade);
    get quiver(): Z64API.Z64.AmmoUpgrade;
    set quiver(q: Z64API.Z64.AmmoUpgrade);
    get wallet(): Z64API.Z64.Wallet;
    set wallet(w: Z64API.Z64.Wallet);
    getMaxRupeeCount(): number;
    get dekuSticks(): boolean;
    set dekuSticks(bool: boolean);
    get dekuSticksCount(): number;
    set dekuSticksCount(count: number);
    get dekuNuts(): boolean;
    set dekuNuts(bool: boolean);
    get dekuNutsCount(): number;
    set dekuNutsCount(count: number);
    get bombs(): boolean;
    set bombs(bool: boolean);
    get bombsCount(): number;
    set bombsCount(count: number);
    get bombchus(): boolean;
    set bombchus(bool: boolean);
    get bombchuCount(): number;
    set bombchuCount(count: number);
    get magicBeans(): boolean;
    set magicBeans(bool: boolean);
    get magicBeansCount(): number;
    set magicBeansCount(count: number);
    get fairySlingshot(): boolean;
    set fairySlingshot(bool: boolean);
    get dekuSeeds(): number;
    set dekuSeeds(count: number);
    get fairyBow(): boolean;
    set fairyBow(bool: boolean);
    get arrows(): number;
    set arrows(count: number);
    get fireArrows(): boolean;
    set fireArrows(bool: boolean);
    get iceArrows(): boolean;
    set iceArrows(bool: boolean);
    get lightArrows(): boolean;
    set lightArrows(bool: boolean);
    get dinsFire(): boolean;
    set dinsFire(bool: boolean);
    get faroresWind(): boolean;
    set faroresWind(bool: boolean);
    get nayrusLove(): boolean;
    set nayrusLove(bool: boolean);
    get ocarina(): Z64API.Z64.Ocarina;
    set ocarina(item: Z64API.Z64.Ocarina);
    get hookshot(): Z64API.OoT.Hookshot;
    set hookshot(item: Z64API.OoT.Hookshot);
    get boomerang(): boolean;
    set boomerang(bool: boolean);
    get lensOfTruth(): boolean;
    set lensOfTruth(bool: boolean);
    get megatonHammer(): boolean;
    set megatonHammer(bool: boolean);
    get bottle_1(): Z64API.OoT.InventoryItem;
    set bottle_1(content: Z64API.OoT.InventoryItem);
    get bottle_2(): Z64API.OoT.InventoryItem;
    set bottle_2(content: Z64API.OoT.InventoryItem);
    get bottle_3(): Z64API.OoT.InventoryItem;
    set bottle_3(content: Z64API.OoT.InventoryItem);
    get bottle_4(): Z64API.OoT.InventoryItem;
    set bottle_4(content: Z64API.OoT.InventoryItem);
    hasBottle(): boolean;
    getBottleCount(): number;
    getBottledItems(): Z64API.OoT.InventoryItem[];
    get childTradeItem(): Z64API.OoT.InventoryItem;
    set childTradeItem(item: Z64API.OoT.InventoryItem);
    get adultTradeItem(): Z64API.OoT.InventoryItem;
    set adultTradeItem(item: Z64API.OoT.InventoryItem);
    isChildTradeFinished(): boolean;
    isAdultTradeFinished(): boolean;
    getItemInSlot(slotId: number): Z64API.OoT.InventoryItem;
    getSlotForItem(item: Z64API.OoT.InventoryItem): number;
    getSlotsForItem(item: Z64API.OoT.InventoryItem): number[];
    hasItem(item: Z64API.OoT.InventoryItem): boolean;
    getAmmoForItem(item: Z64API.OoT.InventoryItem): number;
    hasAmmo(item: Z64API.OoT.InventoryItem): boolean;
    getAmmoForSlot(slotId: number): number;
    setAmmoInSlot(slot: number, amount: number): void;
    setItemInSlot(item: Z64API.OoT.InventoryItem, slot: number): void;
    giveItem(item: Z64API.OoT.InventoryItem, desiredSlot: Z64API.OoT.InventorySlots): void;
    removeItem(item: Z64API.OoT.InventoryItem): void;
    getEmptySlots(): number[];
}
//# sourceMappingURL=Inventory.d.ts.map