/// <reference types="node" />
import IMemory from 'modloader64_api/IMemory';
import { JSONTemplate } from 'modloader64_api/JSONTemplate';
import Vector3 from 'modloader64_api/math/Vector3';
import { IMath } from 'modloader64_api/math/IMath';
import * as Z64API from '../../API/imports';
export declare class Link extends JSONTemplate implements Z64API.Z64.ILink {
    private emulator;
    private math;
    pointer: number;
    private state_addr;
    private state2_addr;
    private tunic_addr;
    private shield_addr;
    private boots_addr;
    private mask_addr;
    private pos_addr;
    private rot_addr;
    private sword_addr;
    private sound_addr;
    rotation: Z64API.IRotation;
    position: Z64API.IPosition;
    homePos: Z64API.IPosition;
    homeRot: Z64API.IRotation;
    actorUUID: string;
    isTransitionActor: boolean;
    jsonFields: string[];
    constructor(emu: IMemory, math: IMath);
    getRdramBuffer(): ArrayBuffer;
    bitCount8(value: number): number;
    bitCount16(value: number): number;
    bitCount32(value: number): number;
    bitCountBuffer(buf: Buffer, off: number, len: number): number;
    invalidateCachedCode(): void;
    get actorID(): number;
    get actorType(): Z64API.ActorCategory;
    get room(): number;
    set room(r: number);
    get renderingFlags(): number;
    set renderingFlags(flags: number);
    get variable(): number;
    get objectTableIndex(): number;
    get soundEffect(): number;
    set soundEffect(s: number);
    get health(): number;
    set health(h: number);
    get redeadFreeze(): number;
    set redeadFreeze(f: number);
    get exists(): boolean;
    get rawStateValue(): number;
    destroy(): void;
    get state(): Z64API.Z64.LinkState;
    get state2(): Z64API.Z64.LinkState2;
    get tunic(): Z64API.OoT.Tunic;
    set tunic(tunic: Z64API.OoT.Tunic);
    get shield(): Z64API.Z64.Shield;
    set shield(shield: Z64API.Z64.Shield);
    get sword(): Z64API.Z64.Sword;
    set sword(sword: Z64API.Z64.Sword);
    get boots(): Z64API.OoT.Boots;
    set boots(boots: Z64API.OoT.Boots);
    get mask(): Z64API.Z64.Mask;
    set mask(mask: Z64API.Z64.Mask);
    get pos(): Buffer;
    set pos(pos: Buffer);
    get rot(): Buffer;
    set rot(rot: Buffer);
    get anim_data(): Buffer;
    set anim_data(buf: Buffer);
    get current_sound_id(): number;
    set current_sound_id(s: number);
    get_anim_id(): number;
    get_anim_frame(): number;
    rdramRead8(addr: number): number;
    rdramWrite8(addr: number, value: number): void;
    rdramRead16(addr: number): number;
    rdramWrite16(addr: number, value: number): void;
    rdramWrite32(addr: number, value: number): void;
    rdramRead32(addr: number): number;
    rdramReadBuffer(addr: number, size: number): Buffer;
    rdramWriteBuffer(addr: number, buf: Buffer): void;
    dereferencePointer(addr: number): number;
    rdramReadS8(addr: number): number;
    rdramReadS16(addr: number): number;
    rdramReadS32(addr: number): number;
    rdramReadBitsBuffer(addr: number, bytes: number): Buffer;
    rdramReadBits8(addr: number): Buffer;
    rdramReadBit8(addr: number, bitoffset: number): boolean;
    rdramWriteBitsBuffer(addr: number, buf: Buffer): void;
    rdramWriteBits8(addr: number, buf: Buffer): void;
    rdramWriteBit8(addr: number, bitoffset: number, bit: boolean): void;
    rdramReadPtr8(addr: number, offset: number): number;
    rdramWritePtr8(addr: number, offset: number, value: number): void;
    rdramReadPtr16(addr: number, offset: number): number;
    rdramWritePtr16(addr: number, offset: number, value: number): void;
    rdramWritePtr32(addr: number, offset: number, value: number): void;
    rdramReadPtr32(addr: number, offset: number): number;
    rdramReadPtrBuffer(addr: number, offset: number, size: number): Buffer;
    rdramWritePtrBuffer(addr: number, offset: number, buf: Buffer): void;
    rdramReadPtrS8(addr: number, offset: number): number;
    rdramReadPtrS16(addr: number, offset: number): number;
    rdramReadPtrS32(addr: number, offset: number): number;
    rdramReadPtrBitsBuffer(addr: number, offset: number, bytes: number): Buffer;
    rdramReadPtrBits8(addr: number, offset: number): Buffer;
    rdramReadPtrBit8(addr: number, offset: number, bitoffset: number): boolean;
    rdramWritePtrBitsBuffer(addr: number, offset: number, buf: Buffer): void;
    rdramWritePtrBits8(addr: number, offset: number, buf: Buffer): void;
    rdramWritePtrBit8(addr: number, offset: number, bitoffset: number, bit: boolean): void;
    rdramReadF32(addr: number): number;
    rdramReadPtrF32(addr: number, offset: number): number;
    rdramWriteF32(addr: number, value: number): void;
    rdramWritePtrF32(addr: number, offset: number, value: number): void;
    memoryDebugLogger(bool: boolean): void;
    rdramRead64(addr: number): number;
    rdramReadS64(addr: number): number;
    rdramReadF64(addr: number): number;
    rdramWrite64(addr: number, val: number): void;
    rdramWriteF64(addr: number, val: number): void;
    rdramReadBigInt64(addr: number): BigInt;
    rdramReadBigIntS64(addr: number): BigInt;
    rdramWriteBigInt64(addr: number, val: BigInt): void;
    get projected_position(): Vector3;
    set projected_position(vec: Vector3);
    get iframes(): number;
    set iframes(f: number);
    u8: number[];
    u16: number[];
    u32: number[];
    u64: number[];
    s8: number[];
    s16: number[];
    s32: number[];
    s64: number[];
    f32: number[];
    f64: number[];
}
//# sourceMappingURL=Link.d.ts.map