/// <reference types="node" />
import { ICore } from 'modloader64_api/IModLoaderAPI';
import Vector3 from 'modloader64_api/math/Vector3';
import * as Z64API from '../../API/imports';
import { IZ64Core, Wallet } from '../Common/Z64API';
export declare const enum Scene {
    NONE = 255,
    SOUTHERN_SWAMP = 0,
    UNKNOWN_0X01 = 1,
    UNKNOWN_0X02 = 2,
    UNKNOWN_0X03 = 3,
    UNKNOWN_0X04 = 4,
    UNKNOWN_0X05 = 5,
    UNKNOWN_0X06 = 6,
    GROTTOS = 7,
    LENS_OF_TRUTH_CAVERN = 7,
    TITLE_SCREEN = 8,
    VARIOUS_CUTSCENES = 8,
    UNKNOWN_0X09 = 9,
    MAGIC_HAGS_POTION_SHOP = 10,
    MAJORAS_MASK_BOSS_ROOM = 11,
    BENEATH_THE_GRAVEYARD = 12,
    CURIOSITY_SHOP = 13,
    UNKNOWN_0X0E = 14,
    UNKNOWN_0X0F = 15,
    MAMAS_HOUSE = 16,
    HONEY_AND_DARLINGS_SHOP = 17,
    MAYORS_RESIDENCE = 18,
    IKANA_CANYON = 19,
    PIRATES_FORTRESS = 20,
    MILK_BAR = 21,
    STONE_TOWER_TEMPLE_NORMAL = 22,
    TREASURE_CHEST_SHOP = 23,
    STONE_TOWER_TEMPLE_INVERTED = 24,
    ON_TOP_OF_CLOCK_TOWER = 25,
    CAVE_BEFORE_CLOCK_TOWER = 26,
    WOODFALL_TEMPLE = 27,
    PATH_TO_MOUNTAIN_VILLAGE = 28,
    ANCIENT_CASTLE_OF_IKANA = 29,
    CLOCK_TOWN_GROTTO_MINIGAME = 30,
    WOODFALL_TEMPLE_BOSS_ROOM = 31,
    CLOCK_TOWN_SHOOTING_GALLERY = 32,
    SNOWHEAD_TEMPLE = 33,
    MILK_ROAD = 34,
    PIRATES_FORTRESS_INDOOR = 35,
    SWAMP_SHOOTING_GALLERY = 36,
    PINNACLE_ROCK = 37,
    GREAT_FAIRY_FOUNTAIN = 38,
    SPIDER_SWAMP_HOUSE = 39,
    OCEAN_SIDE_SPIDER_HOUSE = 40,
    ASTRAL_OBSERVATORY = 41,
    ODOLWAS_TRIAL_MOON = 42,
    OUTSIDE_DEKU_PALACE = 43,
    MOUNTAIN_SMITHY = 44,
    TERMINA_FIELDS = 45,
    POST_OFFICE = 46,
    MARINE_RESEARCH_LAB = 47,
    DAMPES_HOUSE = 48,
    UNKNOWN_0X31 = 49,
    GORON_SHRINE = 50,
    ZORAS_DOMAIN = 51,
    TRADING_POST = 52,
    ROMANI_RANCH = 53,
    STONE_TOWER_TEMPLE_BOSS_ROOM = 54,
    GREAT_BAY_COAST_WEST = 55,
    GREAT_BAY_COAST_EAST = 56,
    LOTTERY_SHOP = 57,
    UNKNOWN_0X3A = 58,
    PIRATES_FORTRESS_ENTRANCE = 59,
    FISHERMANS_HUT = 60,
    GORON_SHOP = 61,
    INSIDE_THE_DEKU_PALACE = 62,
    GOHTS_TRIAL_MOON = 63,
    PATH_TO_SOUTHERN_SWAMPS = 64,
    ROMANI_RANCH_DOG_TRACK = 65,
    ROMANI_RANCH_CUCCO_AREA = 66,
    IKANI_CANYONS_GRAVEYARD = 67,
    SNOWHEAD_TEMPLE_BOSS_ROOM = 68,
    SOUTHERN_SWAMPS = 69,
    WOODFALL = 70,
    GYORGS_TRIAL_MOON = 71,
    GORON_VILLAGE_SPRING = 72,
    GREAT_BAY_TEMPLE = 73,
    BEAVER_RACE_MINIGAME = 74,
    BENEATH_THE_WELL = 72,
    ZORAS_DOMAIN_ROOMS = 76,
    GORON_VILLAGE_WINTER = 77,
    DARMANIS_GRAVE = 78,
    SAKONS_HIDEOUT = 79,
    MOUNTAIN_VILLAGE_WINTER = 80,
    INSIDE_A_POT = 81,
    DEKU_SHRINE = 82,
    PATH_TO_IKANA_CANYON = 83,
    SWORDSMANS_SCHOOL = 84,
    MUSIC_BOX_HOUSE = 85,
    ANCIENT_CASTLE_OF_IKANA_THRONE_ROOM = 86,
    SOUTHERN_SWAMMP_HOUSE = 87,
    STONE_TOWER_NORMAL = 88,
    STONE_TOWER_INVERTED_CUTSCENE = 89,
    MOUNTAIN_VILLAGE_SPRING = 90,
    PATH_TO_GORON_VILLAGE_WINTER = 91,
    SNOWHEAD = 92,
    UNKNOWN_0X5D = 93,
    PATH_TO_GORON_VILLAGE_SPRING = 94,
    GREAT_BAY_TEMPLE_BOSS_ROOM = 95,
    SECRET_SHRINE = 96,
    STOCK_POT_IN = 97,
    GREAT_BAY_PIRATE_CUTSCENE = 98,
    CLOCK_TOWER_SEWER = 99,
    WOODS_OF_MYSTERY = 100,
    STARTING_AREA = 101,
    TWINMOLDS_TRIAL_MOON = 102,
    MOON = 103,
    BOMB_SHOP = 104,
    GIANTS_ROOM_CUTSCENE = 105,
    GORMANS_TRACK = 106,
    GORON_RACETRACK = 107,
    CLOCK_TOWN_EAST = 108,
    CLOCK_TOWN_WEST = 109,
    CLOCK_TOWN_NORTH = 110,
    CLOCK_TOWN_SOUTH = 111,
    LAUNDRY_POOL = 112
}
export interface ISceneInfo {
}
export declare enum InventoryItem {
    OCARINA_OF_TIME = 0,
    HEROES_BOW = 1,
    FIRE_ARROW = 2,
    ICE_ARROW = 3,
    LIGHT_ARROW = 4,
    OCARINA_FAIRY = 5,
    BOMB = 6,
    BOMBCHU = 7,
    DEKU_STICK = 8,
    DEKU_NUT = 9,
    MAGIC_BEANS = 10,
    FAIRY_SLINGSHOT = 11,
    POWDER_KEG = 12,
    PICTOGRAPH_BOX = 13,
    LENS_OF_TRUTH = 14,
    HOOKSHOT = 15,
    GREAT_FAIRYS_SWORD = 16,
    HOOKSHOT_JP = 17,
    BOTTLE_EMPTY = 18,
    BOTTLE_POTION_RED = 19,
    BOTTLE_POTION_GREEN = 20,
    BOTTLE_POTION_BLUE = 21,
    BOTTLE_FAIRY = 22,
    BOTTLE_DEKU_PRINCESS = 23,
    BOTTLE_MILK_FULL = 24,
    BOTTLE_MILK_HALF = 25,
    BOTTLE_FISH = 26,
    BOTTLE_BUGS = 27,
    BOTTLE_BLUE_FIRE = 28,
    BOTTLE_POE_SMALL = 29,
    BOTTLE_POE_BIG = 30,
    BOTTLE_SPRING_WATER_COLD = 31,
    BOTTLE_SPRING_WATER_HOT = 32,
    BOTTLE_ZORA_EGG = 33,
    BOTTLE_GOLD_DUST = 34,
    BOTTLE_MAGICAL_MUSHROOM = 35,
    BOTTLE_SEA_HORSE = 36,
    BOTTLE_CHATEAU_ROMANI = 37,
    BOTTLE_EEL = 38,
    BOTTLE_GRANNYS_DRINK = 39,
    QSLOT1_MOONS_TEAR = 40,
    QSLOT1_TITLE_DEED_LAND = 41,
    QSLOT1_TITLE_DEED_SWAMP = 42,
    QSLOT1_TITLE_DEED_MOUNTAIN = 43,
    QSLOT1_TITLE_DEED_OCEAN = 44,
    QSLOT2_ROOM_KEY = 45,
    QSLOT2_SPECIAL_DELIVERY_TO_MAMA = 46,
    QSLOT3_LETTER_TO_KAFEI = 47,
    QSLOT3_PENDANT_OF_MEMORIES = 48,
    LUNAR_ROCK = 49,
    MASK_POSTMAN = 62,
    MASK_ALL_NIGHT = 56,
    MASK_BLAST = 71,
    MASK_STONE = 69,
    MASK_GREAT_FAIRY = 64,
    MASK_DEKU = 50,
    MASK_KEATON = 58,
    MASK_BREMEN = 70,
    MASK_BUNNY_HOOD = 57,
    MASK_DON_GERO = 66,
    MASK_OF_SCENTS = 72,
    MASK_GORON = 51,
    MASK_ROMANI = 60,
    MASK_CIRCUS_LEADER = 61,
    MASK_KAFEI = 55,
    MASK_COUPLES = 63,
    MASK_OF_TRUTH = 54,
    MASK_ZORA = 52,
    MASK_KAMERO = 67,
    MASK_GIBDO = 65,
    MASK_GARO = 59,
    MASK_CAPTAIN = 68,
    MASK_GIANT = 73,
    MASK_FIERCE_DEITY = 53,
    NONE = 255
}
export interface ISwordHelper {
    updateSwordonB(): void;
}
export interface IPhoto {
    pictograph_photoChunk: Buffer;
    pictograph_spec: number;
    pictograph_quality: number;
    pictograph_unk: number;
    pictograph_used: boolean;
}
export interface IStray {
    strayWoodfall: number;
    straySnowhead: number;
    strayBay: number;
    strayStone: number;
    strayClockTown: boolean;
}
export interface ISkull {
    swampSkulltula: number;
    baySkulltula: number;
}
export interface IInventoryFields {
    wallet: Wallet;
    dekuSticksCapacity: Z64API.Z64.AmmoUpgrade;
    dekuNutsCapacity: Z64API.Z64.AmmoUpgrade;
    bombBag: Z64API.Z64.AmmoUpgrade;
    quiver: Z64API.Z64.AmmoUpgrade;
    photoCount: number;
    FIELD_OCARINA: Z64API.Z64.Ocarina;
    FIELD_HEROES_BOW: boolean;
    FIELD_FIRE_ARROW: boolean;
    FIELD_ICE_ARROW: boolean;
    FIELD_LIGHT_ARROW: boolean;
    FIELD_QUEST_ITEM_1: InventoryItem;
    FIELD_BOMB: boolean;
    FIELD_BOMBCHU: boolean;
    FIELD_DEKU_STICKS: boolean;
    FIELD_DEKU_NUT: boolean;
    FIELD_MAGIC_BEAN: boolean;
    FIELD_QUEST_ITEM_2: InventoryItem;
    FIELD_POWDER_KEG: boolean;
    FIELD_PICTOGRAPH_BOX: boolean;
    FIELD_LENS_OF_TRUTH: boolean;
    FIELD_HOOKSHOT: boolean;
    FIELD_GREAT_FAIRYS_SWORD: boolean;
    FIELD_QUEST_ITEM_3: InventoryItem;
    FIELD_BOTTLE1: InventoryItem;
    FIELD_BOTTLE2: InventoryItem;
    FIELD_BOTTLE3: InventoryItem;
    FIELD_BOTTLE4: InventoryItem;
    FIELD_BOTTLE5: InventoryItem;
    FIELD_BOTTLE6: InventoryItem;
    FIELD_MASK_POSTMAN: boolean;
    FIELD_MASK_ALL_NIGHT: boolean;
    FIELD_MASK_BLAST: boolean;
    FIELD_MASK_STONE: boolean;
    FIELD_MASK_GREAT_FAIRY: boolean;
    FIELD_MASK_DEKU: boolean;
    FIELD_MASK_KEATON: boolean;
    FIELD_MASK_BREMEN: boolean;
    FIELD_MASK_BUNNY_HOOD: boolean;
    FIELD_MASK_DON_GERO: boolean;
    FIELD_MASK_OF_SCENTS: boolean;
    FIELD_MASK_GORON: boolean;
    FIELD_MASK_ROMANI: boolean;
    FIELD_MASK_CIRCUS_LEADER: boolean;
    FIELD_MASK_KAFEI: boolean;
    FIELD_MASK_COUPLES: boolean;
    FIELD_MASK_OF_TRUTH: boolean;
    FIELD_MASK_ZORA: boolean;
    FIELD_MASK_KAMERO: boolean;
    FIELD_MASK_GIBDO: boolean;
    FIELD_MASK_GARO: boolean;
    FIELD_MASK_CAPTAIN: boolean;
    FIELD_MASK_GIANT: boolean;
    FIELD_MASK_FIERCE_DEITY: boolean;
}
export interface IInventoryCounts {
    dekuSticksCount: number;
    dekuNutsCount: number;
    bombsCount: number;
    bombchuCount: number;
    magicBeansCount: number;
    arrows: number;
    photoCount: number;
    powderKegCount: number;
}
export interface IQuestStatus {
    odolwaRemains: boolean;
    gohtRemains: boolean;
    gyorgRemains: boolean;
    twinmoldRemains: boolean;
    songOfTime: boolean;
    songOfHealing: boolean;
    eponaSong: boolean;
    songOfSoaring: boolean;
    songOfStorms: boolean;
    sonataOfAwakening: boolean;
    goronLullaby: boolean;
    newWaveBossaNova: boolean;
    elegyOfEmptiness: boolean;
    oathToOrder: boolean;
    preludeIcon: boolean;
    unknown1: boolean;
    unknown2: boolean;
    unknown3: boolean;
    unknown4: boolean;
    unknown5: boolean;
    lullabyIntro: boolean;
    bombersNotebook: boolean;
    heartPieceCount: number;
    heartPieces1: boolean;
    heartPieces2: boolean;
    heartPieces3: boolean;
    heartPieces4: boolean;
    great_spin: boolean;
}
export interface IOwlStatues {
    greatBayCoast: boolean;
    zoraCape: boolean;
    snowhead: boolean;
    mountainVillage: boolean;
    clockTown: boolean;
    milkRoad: boolean;
    woodfall: boolean;
    southernSwamp: boolean;
    ikanaCanyon: boolean;
    stoneTower: boolean;
    hiddenOwlStatue: boolean;
}
export interface ISaveContext {
    inventory: IInventory;
    swords: Z64API.Z64.ISwords;
    sword_helper: ISwordHelper;
    shields: Z64API.Z64.IShields;
    questStatus: IQuestStatus;
    owlStatues: IOwlStatues;
    checksum: number;
    form: Z64API.Z64.AgeOrForm;
    keyManager: IKeyManager;
    dungeonItemManager: Z64API.IDungeonItemManager;
    heart_containers: number;
    hearts: number;
    health_mod: number;
    magic_meter_size: Z64API.Z64.Magic;
    magic_current: number;
    magic: number;
    deku_b_state: number;
    razor_hits: number;
    double_defense: number;
    owl_statues: number;
    map_visited: Buffer;
    map_visible: Buffer;
    minimap_flags: Buffer;
    rupees: number;
    bank: number;
    photo: IPhoto;
    stray: IStray;
    skull: ISkull;
    day_time: number;
    day_night: number;
    time_speed: number;
    current_day: number;
    current_transformation: Z64API.Z64.AgeOrForm;
    intro_flag: number;
    have_tatl: number;
    lottery_numbers_day1: Buffer;
    lottery_numbers_day2: Buffer;
    lottery_numbers_day3: Buffer;
    spider_house_mask_order: Buffer;
    bomber_code: Buffer;
    pictoboxUsed: boolean;
    permSceneData: Buffer;
    weekEventFlags: Buffer;
    infTable: Buffer;
    permFlags: Buffer;
}
export declare const enum TransitionState {
    FADING_OUT = 20,
    FADING_IN = 236
}
export interface IGlobalContext {
    scene: number;
    room: number;
    scene_framecount: number;
    continue_state: boolean;
    liveSceneData_chests: Buffer;
    liveSceneData_clear: Buffer;
    liveSceneData_switch: Buffer;
    liveSceneData_temp: Buffer;
    liveSceneData_collectable: Buffer;
    getSaveDataForCurrentScene(): Buffer;
    writeSaveDataForCurrentScene(buf: Buffer): void;
    viewStruct: IViewStruct;
    transitionState: TransitionState;
}
export interface IInventory extends IInventoryFields, Z64API.MM.IInventoryCounts {
    hasBottle(): boolean;
    getBottleCount(): number;
    getBottledItems(): InventoryItem[];
    isChildTradeFinished(): boolean;
    isAdultTradeFinished(): boolean;
    getItemInSlot(slotId: number): InventoryItem;
    getSlotForItem(item: InventoryItem): number;
    getSlotsForItem(item: InventoryItem): number[];
    hasItem(item: InventoryItem): boolean;
    hasAmmo(item: InventoryItem): boolean;
    getAmmoForItem(item: InventoryItem): number;
    getAmmoForSlot(slotId: number): number;
    setAmmoInSlot(slot: number, amount: number): void;
    setItemInSlot(item: InventoryItem, slot: number): void;
    giveItem(item: InventoryItem, desiredSlot: number): void;
    removeItem(item: InventoryItem): void;
    getEmptySlots(): number[];
    getMaxRupeeCount(): number;
}
export interface IViewStruct {
    readonly VIEW: string;
    gfx_ctx_pointer: number;
    fov: number;
    near_clip: number;
    far_clip: number;
    position: Vector3;
    focus: Vector3;
    axis: Vector3;
}
export interface IMMHelper {
    isFadeIn(): boolean;
    isTitleScreen(): boolean;
    isSceneNumberValid(): boolean;
    isLinkEnteringLoadingZone(): boolean;
    isPaused(): boolean;
    isInterfaceShown(): boolean;
    Player_InBlockingCsMode(): boolean;
}
export interface IMMCore extends ICore, IZ64Core {
    link: Z64API.Z64.ILink;
    save: ISaveContext;
    helper: IMMHelper;
    global: IGlobalContext;
    photo: IPhoto;
    commandBuffer: Z64API.ICommandBuffer;
    actorManager: IActorManager;
}
export interface IActorManager {
    createIActorFromPointer(pointer: number): Z64API.IActor;
    getActors(category: Z64API.ActorCategory): Z64API.IActor[];
}
export declare const NO_KEYS = 255;
export declare const enum VANILLA_KEY_INDEXES {
    WOODFALL_TEMPLE = 3,
    SNOWHEAD_TEMPLE = 4,
    GREAT_BAY_TEMPLE = 5,
    STONE_TOWER_TEMPLE = 6
}
export declare const enum VANILLA_DUNGEON_ITEM_INDEXES {
    WOODFALL_TEMPLE = 0,
    SNOWHEAD_TEMPLE = 1,
    GREAT_BAY_TEMPLE = 2,
    STONE_TOWER_TEMPLE = 3
}
export interface IKeyManager {
    getKeyCountForIndex(index: number): number;
    setKeyCountByIndex(index: number, count: number): void;
    getRawKeyBuffer(): Buffer;
}
export declare const enum InventorySlots {
    OCARINA_OF_TIME = 0,
    HEROES_BOW = 1,
    FIRE_ARROWS = 2,
    ICE_ARROWS = 3,
    LIGHT_ARROWS = 4,
    QUEST_ITEM_1 = 5,
    BOMBS = 6,
    BOMBCHUS = 7,
    DEKU_STICKS = 8,
    DEKU_NUTS = 9,
    MAGIC_BEANS = 10,
    QUEST_ITEM_2 = 11,
    POWDER_KEG = 12,
    PICTOGRAPH_BOX = 13,
    LENS_OF_TRUTH = 14,
    HOOKSHOT = 15,
    GREAT_FAIRYS_SWORD = 16,
    QUEST_ITEM_3 = 17,
    BOTTLE1 = 18,
    BOTTLE2 = 19,
    BOTTLE3 = 20,
    BOTTLE4 = 21,
    BOTTLE5 = 22,
    BOTTLE6 = 23,
    MASK_POSTMAN = 24,
    MASK_ALL_NIGHT = 25,
    MASK_BLAST = 26,
    MASK_STONE = 27,
    MASK_GREAT_FAIRY = 28,
    MASK_DEKU = 29,
    MASK_KEATON = 30,
    MASK_BREMEN = 31,
    MASK_BUNNY_HOOD = 32,
    MASK_DON_GERO = 33,
    MASK_OF_SCENTS = 34,
    MASK_GORON = 35,
    MASK_ROMANI = 36,
    MASK_CIRCUS_LEADER = 37,
    MASK_KAFEI = 38,
    MASK_COUPLES = 39,
    MASK_OF_TRUTH = 40,
    MASK_ZORA = 41,
    MASK_KAMERO = 42,
    MASK_GIBDO = 43,
    MASK_GARO = 44,
    MASK_CAPTAIN = 45,
    MASK_GIANT = 46,
    MASK_FIERCE_DEITY = 47,
    NONE = 255
}
export declare enum Spider_House_Masks {
    RED = 0,
    BLUE = 1,
    YELLOW = 2,
    GREEN = 3
}
//# sourceMappingURL=MMAPI.d.ts.map