
// Generated automatically. Do not edit.
export declare function printConsole(...arguments: any[]): void;
export declare function writeScript(scriptName: string, src: string): void;
export declare function callNative(className: string, functionName: string, self?: object, ...args: any): any;
export declare function getJsMemoryUsage(): number;
export declare function getPluginSourceCode(pluginName: string): string;
export declare function writePlugin(pluginName: string, newSources: string): string;
export declare function getPlatformVersion(): string;
export declare let storage: any;
export declare let settings: any;

export declare function on(eventName: 'update', callback: () => void): void;
export declare function once(eventName: 'update', callback: () => void): void;

export declare function on(eventName: 'tick', callback: () => void): void;
export declare function once(eventName: 'tick', callback: () => void): void;

export declare function loadGame(pos: number[], angle: number[], worldOrCell: number): void;

export declare function worldPointToScreenPoint(...args: number[][]): number[][];

export type PacketType = 'message' | 'disconnect' | 'connectionAccepted' | 'connectionFailed' | 'connectionDenied';

// Available only if multiplayer is installed on user's machine
interface MpClientPlugin {
    getVersion(): string;
    createClient(host: string, port: number): void;
    destroyClient(): void;
    isConnected(): boolean;
    tick(tickHandler: (packetType: PacketType, jsonContent: string, error: string) => void): void;
    send(jsonContent: string, reliable: boolean): void;
}
export declare let mpClientPlugin: MpClientPlugin;

export interface Browser {
  setVisible(visible: boolean): void;
  setFocused(focused: boolean): void;
  loadUrl(url: string): void;
  getToken(): string;
}
export declare let browser: Browser;

export interface ExtraData {
  type: 'Health' | 'Count' | 'Enchantment' | 'Charge' | 'TextDisplayData' | 'Soul' | 'Poison' | 'Worn' | 'WornLeft';
}
export interface ExtraHealth extends ExtraData {
  type: 'Health';
  health: number;
}
export interface ExtraCount extends ExtraData {
  type: 'Count';
  count: number;
}
export interface ExtraEnchantment extends ExtraData {
  type: 'Enchantment';
  enchantmentId: number;
  maxCharge: number;
  removeOnUnequip: boolean;
}
export interface ExtraCharge extends ExtraData {
  type: 'Charge';
  charge: number;
}
export interface ExtraTextDisplayData extends ExtraData {
  type: 'TextDisplayData';
  name: string;
}
export interface ExtraSoul extends ExtraData {
  type: 'Soul';
  soul: 0 | 1 | 2 | 3 | 4 | 5;
}
export interface ExtraPoison extends ExtraData {
  type: 'Poison';
  poisonId: number;
  count: number;
}
export interface ExtraWorn extends ExtraData {
  type: 'Worn';
}
export interface ExtraWornLeft extends ExtraData {
  type: 'WornLeft';
}
export type BaseExtraList = ExtraData[];
export interface InventoryChangesEntry {
  countDelta: number;
  baseId: number;
  extendDataList: BaseExtraList[];
}
export declare let getExtraContainerChanges: (objectReferenceId: number) => InventoryChangesEntry[];

export interface InventoryEntry {
  count: number;
  baseId: number;
}
export declare let getContainer: (baseId: number) => InventoryEntry[];

export interface ActivateEvent {
    target: ObjectReference,
    caster: ObjectReference,
    isCrimeToActivate: boolean
}

export interface MoveAttachDetachEvent {
    movedRef: ObjectReference,
    isCellAttached: boolean
}
export interface WaitStopEvent {
    isInterrupted: boolean
}
export interface ObjectLoadedEvent {
    object: Form,
    isLoaded: boolean
}
export interface LockChangedEvent {
    lockedObject: ObjectReference
}

export interface CellFullyLoadedEvent {
    cell: Cell
}

export interface GrabReleaseEvent {
    refr: ObjectReference,
    isGrabbed: boolean
}

export interface SwitchRaceCompleteEvent {
    subject: ObjectReference
}

export interface UniqueIDChangeEvent {
    oldBaseID: number,
    newBaseID: number,
    oldUniqueID: number,
    newUniqueID: number
}

export interface TrackedStatsEvent {
    statName: string,
    newValue: number
}

export interface InitScriptEvent {
    initializedObject: ObjectReference
}

export interface ResetEvent {
    object: ObjectReference
}

export interface CombatEvent {
    target: ObjectReference,
    actor: ObjectReference,
    isCombat: boolean,
    isSearching: boolean
}

export interface DeathEvent {
    actorDying: ObjectReference,
    actorKiller: ObjectReference
}

export interface ContainerChangedEvent {
    oldContainer: ObjectReference,
    newContainer: ObjectReference,
    baseObj: Form,
    numItems: number,
    uniqueID: number,
    reference: ObjectReference
}

export interface HitEvent {
    target: ObjectReference,
    agressor: ObjectReference,
    source: Form,
    projectile: Projectile,
    isPowerAttack: boolean,
    isSneakAttack: boolean,
    isBashAttack: boolean,
    isHitBlocked: boolean
}

export interface EquipEvent {
    actor: ObjectReference,
    baseObj: Form,
    uniqueId: number,
    originalRefr: ObjectReference
}

export interface ActiveEffectApplyRemoveEvent {
    effect: MagicEffect,
    caster: ObjectReference,
    target: ObjectReference
}

export interface MagicEffectApplyEvent {
    effect: MagicEffect,
    caster: ObjectReference,
    target: ObjectReference
}

export declare function on(eventName: 'activate', callback: (event: ActivateEvent) => void): void;
export declare function once(eventName: 'activate', callback: (event: ActivateEvent) => void): void;

export declare function on(eventName: 'waitStop', callback: (event: WaitStopEvent) => void): void;
export declare function once(eventName: 'waitStop', callback: (event: WaitStopEvent) => void): void;

export declare function on(eventName: 'objectLoaded', callback: (event: ObjectLoadedEvent) => void): void;
export declare function once(eventName: 'objectLoaded', callback: (event: ObjectLoadedEvent) => void): void;

export declare function on(eventName: 'moveAttachDetach', callback: (event: MoveAttachDetachEvent) => void): void;
export declare function once(eventName: 'moveAttachDetach', callback: (event: MoveAttachDetachEvent) => void): void;

export declare function on(eventName: 'lockChanged', callback: (event: LockChangedEvent) => void): void;
export declare function once(eventName: 'lockChanged', callback: (event: LockChangedEvent) => void): void;

export declare function on(eventName: 'grabRelease', callback: (event: GrabReleaseEvent) => void): void;
export declare function once(eventName: 'grabRelease', callback: (event: GrabReleaseEvent) => void): void;

export declare function on(eventName: 'cellFullyLoaded', callback: (event: CellFullyLoadedEvent) => void): void;
export declare function once(eventName: 'cellFullyLoaded', callback: (event: CellFullyLoadedEvent) => void): void;

export declare function on(eventName: 'switchRaceComplete', callback: (event: SwitchRaceCompleteEvent) => void): void;
export declare function once(eventName: 'switchRaceComplete', callback: (event: SwitchRaceCompleteEvent) => void): void;

export declare function on(eventName: 'uniqueIdChange', callback: (event: UniqueIDChangeEvent) => void): void;
export declare function once(eventName: 'uniqueIdChange', callback: (event: UniqueIDChangeEvent) => void): void;

export declare function on(eventName: 'trackedStats', callback: (event: TrackedStatsEvent) => void): void;
export declare function once(eventName: 'trackedStats', callback: (event: TrackedStatsEvent) => void): void;

export declare function on(eventName: 'scriptInit', callback: (event: InitScriptEvent) => void): void;
export declare function once(eventName: 'scriptInit', callback: (event: InitScriptEvent) => void): void;

export declare function on(eventName: 'reset', callback: (event: ResetEvent) => void): void;
export declare function once(eventName: 'reset', callback: (event: ResetEvent) => void): void;

export declare function on(eventName: 'combatState', callback: (event: CombatEvent) => void): void;
export declare function once(eventName: 'combatState', callback: (event: CombatEvent) => void): void;

export declare function on(eventName: 'loadGame', callback: () => void): void;
export declare function once(eventName: 'loadGame', callback: () => void): void;

export declare function on(eventName: 'deathEnd', callback: (event: DeathEvent) => void): void;
export declare function once(eventName: 'deathEnd', callback: (event: DeathEvent) => void): void;

export declare function on(eventName: 'deathStart', callback: (event: DeathEvent) => void): void;
export declare function once(eventName: 'deathStart', callback: (event: DeathEvent) => void): void;

export declare function on(eventName: 'containerChanged', callback: (event: ContainerChangedEvent) => void): void;
export declare function once(eventName: 'containerChanged', callback: (event: ContainerChangedEvent) => void): void;

export declare function on(eventName: 'hit', callback: (event: HitEvent) => void): void;
export declare function once(eventName: 'hit', callback: (event: HitEvent) => void): void;

export declare function on(eventName: 'unequip', callback: (event: EquipEvent) => void): void;
export declare function once(eventName: 'unequip', callback: (event: EquipEvent) => void): void;

export declare function on(eventName: 'equip', callback: (event: EquipEvent) => void): void;
export declare function once(eventName: 'equip', callback: (event: EquipEvent) => void): void;

export declare function on(eventName: 'magicEffectApply', callback: (event: MagicEffectApplyEvent) => void): void;
export declare function once(eventName: 'magicEffectApply', callback: (event: MagicEffectApplyEvent) => void): void;

export declare function on(eventName: 'effectFinish', callback: (event: ActiveEffectApplyRemoveEvent) => void): void;
export declare function once(eventName: 'effectFinish', callback: (event: ActiveEffectApplyRemoveEvent) => void): void;

export declare function on(eventName: 'effectStart', callback: (event: ActiveEffectApplyRemoveEvent) => void): void;
export declare function once(eventName: 'effectStart', callback: (event: ActiveEffectApplyRemoveEvent) => void): void;

declare class ConsoleComand {
    longName: string;
    shortName: string;
    numArgs: number;
    execute: (...arguments: any[]) => boolean;
}
export declare function findConsoleCommand(cmdName: string): ConsoleComand;

export enum MotionType {
    Dynamic = 1,
    SphereInertia = 2,
    BoxInertia = 3,
    Keyframed = 4,
    Fixed = 5,
    ThinBoxInertia = 6,
    Character = 7
};

export declare namespace SendAnimationEventHook {
    class Context {
        selfId: number;
        animEventName: string;

        storage: Map<string, any>;
    }

    class LeaveContext extends Context {
        animationSucceeded: boolean;
    }

    class Handler {
        enter(ctx: Context): void;
        leave(ctx: LeaveContext): void;
    }

    class Target {
        add(handler: Handler): void;
    }
}
export declare class Hooks {
    sendAnimationEvent: SendAnimationEventHook.Target;
}

export declare let hooks: Hooks;

export declare class HttpResponse {
    body: string;
}

export declare class HttpClient {
    constructor(host: string, port?: number);
    get(path: string): Promise<HttpResponse>;
}


// Based on Form.pex
export declare class Form {
    static from(form: Form): Form;
    getFormID(): number;
    getGoldValue(): number;
    getKeywords(): object[];
    getName(): string;
    getNthKeyword(index: number): Keyword;
    getNumKeywords(): number;
    getType(): number;
    getWeight(): number;
    getWorldModelNthTextureSet(n: number): TextureSet;
    getWorldModelNumTextureSets(): number;
    getWorldModelPath(): string;
    hasKeyword(akKeyword: Keyword): boolean;
    hasWorldModel(): boolean;
    isPlayable(): boolean;
    playerKnows(): boolean;
    registerForActorAction(actionType: number): void;
    registerForAnimationEvent(akSender: ObjectReference, asEventName: string): boolean;
    registerForCameraState(): void;
    registerForControl(control: string): void;
    registerForCrosshairRef(): void;
    registerForKey(keyCode: number): void;
    registerForLOS(akViewer: Actor, akTarget: ObjectReference): void;
    registerForMenu(menuName: string): void;
    registerForModEvent(eventName: string, callbackName: string): void;
    registerForNiNodeUpdate(): void;
    registerForSingleLOSGain(akViewer: Actor, akTarget: ObjectReference): void;
    registerForSingleLOSLost(akViewer: Actor, akTarget: ObjectReference): void;
    registerForSingleUpdate(afInterval: number): void;
    registerForSingleUpdateGameTime(afInterval: number): void;
    registerForSleep(): void;
    registerForTrackedStatsEvent(): void;
    registerForUpdate(afInterval: number): void;
    registerForUpdateGameTime(afInterval: number): void;
    sendModEvent(eventName: string, strArg: string, numArg: number): void;
    setGoldValue(value: number): void;
    setName(name: string): void;
    setPlayerKnows(knows: boolean): void;
    setWeight(weight: number): void;
    setWorldModelNthTextureSet(nSet: TextureSet, n: number): void;
    setWorldModelPath(path: string): void;
    startObjectProfiling(): void;
    stopObjectProfiling(): void;
    tempClone(): Form;
    unregisterForActorAction(actionType: number): void;
    unregisterForAllControls(): void;
    unregisterForAllKeys(): void;
    unregisterForAllMenus(): void;
    unregisterForAllModEvents(): void;
    unregisterForAnimationEvent(akSender: ObjectReference, asEventName: string): void;
    unregisterForCameraState(): void;
    unregisterForControl(control: string): void;
    unregisterForCrosshairRef(): void;
    unregisterForKey(keyCode: number): void;
    unregisterForLOS(akViewer: Actor, akTarget: ObjectReference): void;
    unregisterForMenu(menuName: string): void;
    unregisterForModEvent(eventName: string): void;
    unregisterForNiNodeUpdate(): void;
    unregisterForSleep(): void;
    unregisterForTrackedStatsEvent(): void;
    unregisterForUpdate(): void;
    unregisterForUpdateGameTime(): void;
}

// Based on Action.pex
export declare class Action extends Form {
    static from(form: Form): Action;
}

// Based on Activator.pex
export declare class Activator extends Form {
    static from(form: Form): Activator;
}

// Based on ActiveMagicEffect.pex
export declare class ActiveMagicEffect {
    static from(form: Form): ActiveMagicEffect;
    addInventoryEventFilter(akFilter: Form): void;
    dispel(): void;
    getBaseObject(): MagicEffect;
    getCasterActor(): Actor;
    getDuration(): number;
    getMagnitude(): number;
    getTargetActor(): Actor;
    getTimeElapsed(): number;
    registerForActorAction(actionType: number): void;
    registerForAnimationEvent(akSender: ObjectReference, asEventName: string): boolean;
    registerForCameraState(): void;
    registerForControl(control: string): void;
    registerForCrosshairRef(): void;
    registerForKey(keyCode: number): void;
    registerForLOS(akViewer: Actor, akTarget: ObjectReference): void;
    registerForMenu(menuName: string): void;
    registerForModEvent(eventName: string, callbackName: string): void;
    registerForNiNodeUpdate(): void;
    registerForSingleLOSGain(akViewer: Actor, akTarget: ObjectReference): void;
    registerForSingleLOSLost(akViewer: Actor, akTarget: ObjectReference): void;
    registerForSingleUpdate(afInterval: number): void;
    registerForSingleUpdateGameTime(afInterval: number): void;
    registerForSleep(): void;
    registerForTrackedStatsEvent(): void;
    registerForUpdate(afInterval: number): void;
    registerForUpdateGameTime(afInterval: number): void;
    removeAllInventoryEventFilters(): void;
    removeInventoryEventFilter(akFilter: Form): void;
    sendModEvent(eventName: string, strArg: string, numArg: number): void;
    startObjectProfiling(): void;
    stopObjectProfiling(): void;
    unregisterForActorAction(actionType: number): void;
    unregisterForAllControls(): void;
    unregisterForAllKeys(): void;
    unregisterForAllMenus(): void;
    unregisterForAllModEvents(): void;
    unregisterForAnimationEvent(akSender: ObjectReference, asEventName: string): void;
    unregisterForCameraState(): void;
    unregisterForControl(control: string): void;
    unregisterForCrosshairRef(): void;
    unregisterForKey(keyCode: number): void;
    unregisterForLOS(akViewer: Actor, akTarget: ObjectReference): void;
    unregisterForMenu(menuName: string): void;
    unregisterForModEvent(eventName: string): void;
    unregisterForNiNodeUpdate(): void;
    unregisterForSleep(): void;
    unregisterForTrackedStatsEvent(): void;
    unregisterForUpdate(): void;
    unregisterForUpdateGameTime(): void;
}

// Based on ObjectReference.pex
export declare class ObjectReference extends Form {
    static from(form: Form): ObjectReference;
    activate(akActivator: ObjectReference, abDefaultProcessingOnly: boolean): boolean;
    addDependentAnimatedObjectReference(akDependent: ObjectReference): boolean;
    addInventoryEventFilter(akFilter: Form): void;
    addItem(akItemToAdd: Form, aiCount: number, abSilent: boolean): void;
    addToMap(abAllowFastTravel: boolean): void;
    applyHavokImpulse(afX: number, afY: number, afZ: number, afMagnitude: number): Promise<void>;
    blockActivation(abBlocked: boolean): void;
    calculateEncounterLevel(aiDifficulty: number): number;
    canFastTravelToMarker(): boolean;
    clearDestruction(): void;
    createDetectionEvent(akOwner: Actor, aiSoundLevel: number): void;
    createEnchantment(maxCharge: number, effects: object[], magnitudes: number[], areas: number[], durations: number[]): void;
    damageObject(afDamage: number): Promise<void>;
    delete(): Promise<void>;
    disable(abFadeOut: boolean): Promise<void>;
    disableNoWait(abFadeOut: boolean): void;
    dropObject(akObject: Form, aiCount: number): Promise<ObjectReference>;
    enable(abFadeIn: boolean): Promise<void>;
    enableFastTravel(abEnable: boolean): void;
    enableNoWait(abFadeIn: boolean): void;
    forceAddRagdollToWorld(): Promise<void>;
    forceRemoveRagdollFromWorld(): Promise<void>;
    getActorOwner(): ActorBase;
    getAllForms(toFill: FormList): void;
    getAngleX(): number;
    getAngleY(): number;
    getAngleZ(): number;
    getAnimationVariableBool(arVariableName: string): boolean;
    getAnimationVariableFloat(arVariableName: string): number;
    getAnimationVariableInt(arVariableName: string): number;
    getBaseObject(): Form;
    getContainerForms(): object[];
    getCurrentDestructionStage(): number;
    getCurrentLocation(): Location;
    getCurrentScene(): Scene;
    getDisplayName(): string;
    getEditorLocation(): Location;
    getEnableParent(): ObjectReference;
    getEnchantment(): Enchantment;
    getFactionOwner(): Faction;
    getHeadingAngle(akOther: ObjectReference): number;
    getHeight(): number;
    getItemCharge(): number;
    getItemCount(akItem: Form): number;
    getItemHealthPercent(): number;
    getItemMaxCharge(): number;
    getKey(): Key;
    getLength(): number;
    getLinkedRef(apKeyword: Keyword): ObjectReference;
    getLockLevel(): number;
    getMass(): number;
    getNthForm(index: number): Form;
    getNthLinkedRef(aiLinkedRef: number): ObjectReference;
    getNthReferenceAlias(n: number): ReferenceAlias;
    getNumItems(): number;
    getNumReferenceAliases(): number;
    getOpenState(): number;
    getParentCell(): Cell;
    getPoison(): Potion;
    getPositionX(): number;
    getPositionY(): number;
    getPositionZ(): number;
    getReferenceAliases(): object[];
    getScale(): number;
    getTotalArmorWeight(): number;
    getTotalItemWeight(): number;
    getTriggerObjectCount(): number;
    getVoiceType(): VoiceType;
    getWidth(): number;
    getWorldSpace(): WorldSpace;
    hasEffectKeyword(akKeyword: Keyword): boolean;
    hasNode(asNodeName: string): boolean;
    hasRefType(akRefType: LocationRefType): boolean;
    ignoreFriendlyHits(abIgnore: boolean): void;
    interruptCast(): void;
    is3DLoaded(): boolean;
    isActivateChild(akChild: ObjectReference): boolean;
    isActivationBlocked(): boolean;
    isDeleted(): boolean;
    isDisabled(): boolean;
    isFurnitureInUse(abIgnoreReserved: boolean): boolean;
    isFurnitureMarkerInUse(aiMarker: number, abIgnoreReserved: boolean): boolean;
    isHarvested(): boolean;
    isIgnoringFriendlyHits(): boolean;
    isInDialogueWithPlayer(): boolean;
    isLockBroken(): boolean;
    isLocked(): boolean;
    isMapMarkerVisible(): boolean;
    isOffLimits(): boolean;
    knockAreaEffect(afMagnitude: number, afRadius: number): void;
    lock(abLock: boolean, abAsOwner: boolean): void;
    moveTo(akTarget: ObjectReference, afXOffset: number, afYOffset: number, afZOffset: number, abMatchRotation: boolean): Promise<void>;
    moveToInteractionLocation(akTarget: ObjectReference): Promise<void>;
    moveToMyEditorLocation(): Promise<void>;
    moveToNode(akTarget: ObjectReference, asNodeName: string): Promise<void>;
    placeActorAtMe(akActorToPlace: ActorBase, aiLevelMod: number, akZone: EncounterZone): Actor;
    placeAtMe(akFormToPlace: Form, aiCount: number, abForcePersist: boolean, abInitiallyDisabled: boolean): ObjectReference;
    playAnimation(asAnimation: string): boolean;
    playAnimationAndWait(asAnimation: string, asEventName: string): Promise<boolean>;
    playGamebryoAnimation(asAnimation: string, abStartOver: boolean, afEaseInTime: number): boolean;
    playImpactEffect(akImpactEffect: ImpactDataSet, asNodeName: string, afPickDirX: number, afPickDirY: number, afPickDirZ: number, afPickLength: number, abApplyNodeRotation: boolean, abUseNodeLocalRotation: boolean): boolean;
    playSyncedAnimationAndWaitSS(asAnimation1: string, asEvent1: string, akObj2: ObjectReference, asAnimation2: string, asEvent2: string): Promise<boolean>;
    playSyncedAnimationSS(asAnimation1: string, akObj2: ObjectReference, asAnimation2: string): boolean;
    playTerrainEffect(asEffectModelName: string, asAttachBoneName: string): void;
    processTrapHit(akTrap: ObjectReference, afDamage: number, afPushback: number, afXVel: number, afYVel: number, afZVel: number, afXPos: number, afYPos: number, afZPos: number, aeMaterial: number, afStagger: number): void;
    pushActorAway(akActorToPush: Actor, aiKnockbackForce: number): void;
    removeAllInventoryEventFilters(): void;
    removeAllItems(akTransferTo: ObjectReference, abKeepOwnership: boolean, abRemoveQuestItems: boolean): void;
    removeDependentAnimatedObjectReference(akDependent: ObjectReference): boolean;
    removeInventoryEventFilter(akFilter: Form): void;
    removeItem(akItemToRemove: Form, aiCount: number, abSilent: boolean, akOtherContainer: ObjectReference): void;
    reset(akTarget: ObjectReference): Promise<void>;
    resetInventory(): void;
    say(akTopicToSay: Topic, akActorToSpeakAs: Actor, abSpeakInPlayersHead: boolean): void;
    sendStealAlarm(akThief: Actor): void;
    setActorCause(akActor: Actor): void;
    setActorOwner(akActorBase: ActorBase): void;
    setAngle(afXAngle: number, afYAngle: number, afZAngle: number): Promise<void>;
    setAnimationVariableBool(arVariableName: string, abNewValue: boolean): void;
    setAnimationVariableFloat(arVariableName: string, afNewValue: number): void;
    setAnimationVariableInt(arVariableName: string, aiNewValue: number): void;
    setDestroyed(abDestroyed: boolean): void;
    setDisplayName(name: string, force: boolean): boolean;
    setEnchantment(source: Enchantment, maxCharge: number): void;
    setFactionOwner(akFaction: Faction): void;
    setHarvested(harvested: boolean): void;
    setItemCharge(charge: number): void;
    setItemHealthPercent(health: number): void;
    setItemMaxCharge(maxCharge: number): void;
    setLockLevel(aiLockLevel: number): void;
    setMotionType(aeMotionType: MotionType, abAllowActivate: boolean): Promise<void>;
    setNoFavorAllowed(abNoFavor: boolean): void;
    setOpen(abOpen: boolean): void;
    setPosition(afX: number, afY: number, afZ: number): Promise<void>;
    setScale(afScale: number): Promise<void>;
    splineTranslateTo(afX: number, afY: number, afZ: number, afXAngle: number, afYAngle: number, afZAngle: number, afTangentMagnitude: number, afSpeed: number, afMaxRotationSpeed: number): void;
    splineTranslateToRefNode(arTarget: ObjectReference, arNodeName: string, afTangentMagnitude: number, afSpeed: number, afMaxRotationSpeed: number): void;
    stopTranslation(): void;
    tetherToHorse(akHorse: ObjectReference): void;
    translateTo(afX: number, afY: number, afZ: number, afXAngle: number, afYAngle: number, afZAngle: number, afSpeed: number, afMaxRotationSpeed: number): void;
    waitForAnimationEvent(asEventName: string): Promise<boolean>;
    getDistance(akOther: ObjectReference): number;
}

// Based on Actor.pex
export declare class Actor extends ObjectReference {
    static from(form: Form): Actor;
    addPerk(akPerk: Perk): void;
    addShout(akShout: Shout): boolean;
    addSpell(akSpell: Spell, abVerbose: boolean): boolean;
    allowBleedoutDialogue(abCanTalk: boolean): void;
    allowPCDialogue(abTalk: boolean): void;
    attachAshPile(akAshPileBase: Form): void;
    canFlyHere(): boolean;
    changeHeadPart(hPart: HeadPart): void;
    clearArrested(): void;
    clearExpressionOverride(): void;
    clearExtraArrows(): void;
    clearForcedMovement(): void;
    clearKeepOffsetFromActor(): void;
    clearLookAt(): void;
    damageActorValue(asValueName: string, afDamage: number): void;
    dismount(): boolean;
    dispelAllSpells(): void;
    dispelSpell(akSpell: Spell): boolean;
    doCombatSpellApply(akSpell: Spell, akTarget: ObjectReference): void;
    drawWeapon(): void;
    enableAI(abEnable: boolean): void;
    endDeferredKill(): void;
    equipItem(akItem: Form, abPreventRemoval: boolean, abSilent: boolean): void;
    equipItemById(item: Form, itemId: number, equipSlot: number, preventUnequip: boolean, equipSound: boolean): void;
    equipItemEx(item: Form, equipSlot: number, preventUnequip: boolean, equipSound: boolean): void;
    equipShout(akShout: Shout): void;
    equipSpell(akSpell: Spell, aiSource: number): void;
    evaluatePackage(): void;
    forceActorValue(asValueName: string, afNewValue: number): void;
    forceMovementDirection(afXAngle: number, afYAngle: number, afZAngle: number): void;
    forceMovementDirectionRamp(afXAngle: number, afYAngle: number, afZAngle: number, afRampTime: number): void;
    forceMovementRotationSpeed(afXMult: number, afYMult: number, afZMult: number): void;
    forceMovementRotationSpeedRamp(afXMult: number, afYMult: number, afZMult: number, afRampTime: number): void;
    forceMovementSpeed(afSpeedMult: number): void;
    forceMovementSpeedRamp(afSpeedMult: number, afRampTime: number): void;
    forceTargetAngle(afXAngle: number, afYAngle: number, afZAngle: number): void;
    forceTargetDirection(afXAngle: number, afYAngle: number, afZAngle: number): void;
    forceTargetSpeed(afSpeed: number): void;
    getActorValue(asValueName: string): number;
    getActorValueMax(asValueName: string): number;
    getActorValuePercentage(asValueName: string): number;
    getBaseActorValue(asValueName: string): number;
    getBribeAmount(): number;
    getCombatState(): number;
    getCombatTarget(): Actor;
    getCrimeFaction(): Faction;
    getCurrentPackage(): Package;
    getDialogueTarget(): Actor;
    getEquippedArmorInSlot(aiSlot: number): Armor;
    getEquippedItemId(Location: number): number;
    getEquippedItemType(aiHand: number): number;
    getEquippedObject(Location: number): Form;
    getEquippedShield(): Armor;
    getEquippedShout(): Shout;
    getEquippedSpell(aiSource: number): Spell;
    getEquippedWeapon(abLeftHand: boolean): Weapon;
    getFactionRank(akFaction: Faction): number;
    getFactionReaction(akOther: Actor): number;
    getFactions(minRank: number, maxRank: number): object[];
    getFlyingState(): number;
    getForcedLandingMarker(): ObjectReference;
    getFurnitureReference(): ObjectReference;
    getGoldAmount(): number;
    getHighestRelationshipRank(): number;
    getKiller(): Actor;
    getLevel(): number;
    getLeveledActorBase(): ActorBase;
    getLightLevel(): number;
    getLowestRelationshipRank(): number;
    getNoBleedoutRecovery(): boolean;
    getNthSpell(n: number): Spell;
    getPlayerControls(): boolean;
    getRace(): Race;
    getRelationshipRank(akOther: Actor): number;
    getSitState(): number;
    getSleepState(): number;
    getSpellCount(): number;
    getVoiceRecoveryTime(): number;
    getWarmthRating(): number;
    getWornForm(slotMask: number): Form;
    getWornItemId(slotMask: number): number;
    hasAssociation(akAssociation: AssociationType, akOther: Actor): boolean;
    hasFamilyRelationship(akOther: Actor): boolean;
    hasLOS(akOther: ObjectReference): boolean;
    hasMagicEffect(akEffect: MagicEffect): boolean;
    hasMagicEffectWithKeyword(akKeyword: Keyword): boolean;
    hasParentRelationship(akOther: Actor): boolean;
    hasPerk(akPerk: Perk): boolean;
    hasSpell(akForm: Form): boolean;
    isAIEnabled(): boolean;
    isAlarmed(): boolean;
    isAlerted(): boolean;
    isAllowedToFly(): boolean;
    isArrested(): boolean;
    isArrestingTarget(): boolean;
    isBeingRidden(): boolean;
    isBleedingOut(): boolean;
    isBribed(): boolean;
    isChild(): boolean;
    isCommandedActor(): boolean;
    isDead(): boolean;
    isDetectedBy(akOther: Actor): boolean;
    isDoingFavor(): boolean;
    isEquipped(akItem: Form): boolean;
    isEssential(): boolean;
    isFlying(): boolean;
    isGhost(): boolean;
    isGuard(): boolean;
    isHostileToActor(akActor: Actor): boolean;
    isInCombat(): boolean;
    isInFaction(akFaction: Faction): boolean;
    isInKillMove(): boolean;
    isIntimidated(): boolean;
    isOnMount(): boolean;
    isOverEncumbered(): boolean;
    isPlayerTeammate(): boolean;
    isPlayersLastRiddenHorse(): boolean;
    isRunning(): boolean;
    isSneaking(): boolean;
    isSprinting(): boolean;
    isSwimming(): boolean;
    isTrespassing(): boolean;
    isUnconscious(): boolean;
    isWeaponDrawn(): boolean;
    keepOffsetFromActor(arTarget: Actor, afOffsetX: number, afOffsetY: number, afOffsetZ: number, afOffsetAngleX: number, afOffsetAngleY: number, afOffsetAngleZ: number, afCatchUpRadius: number, afFollowRadius: number): void;
    kill(akKiller: Actor): void;
    killSilent(akKiller: Actor): void;
    modActorValue(asValueName: string, afAmount: number): void;
    modFactionRank(akFaction: Faction, aiMod: number): void;
    moveToPackageLocation(): Promise<void>;
    openInventory(abForceOpen: boolean): void;
    pathToReference(aTarget: ObjectReference, afWalkRunPercent: number): Promise<boolean>;
    playIdle(akIdle: Idle): boolean;
    playIdleWithTarget(akIdle: Idle, akTarget: ObjectReference): boolean;
    playSubGraphAnimation(asEventName: string): void;
    queueNiNodeUpdate(): void;
    regenerateHead(): void;
    removeFromAllFactions(): void;
    removeFromFaction(akFaction: Faction): void;
    removePerk(akPerk: Perk): void;
    removeShout(akShout: Shout): boolean;
    removeSpell(akSpell: Spell): boolean;
    replaceHeadPart(oPart: HeadPart, newPart: HeadPart): void;
    resetAI(): void;
    resetExpressionOverrides(): void;
    resetHealthAndLimbs(): void;
    restoreActorValue(asValueName: string, afAmount: number): void;
    resurrect(): Promise<void>;
    sendAssaultAlarm(): void;
    sendLycanthropyStateChanged(abIsWerewolf: boolean): void;
    sendTrespassAlarm(akCriminal: Actor): void;
    sendVampirismStateChanged(abIsVampire: boolean): void;
    setActorValue(asValueName: string, afValue: number): void;
    setAlert(abAlerted: boolean): void;
    setAllowFlying(abAllowed: boolean): void;
    setAllowFlyingEx(abAllowed: boolean, abAllowCrash: boolean, abAllowSearch: boolean): void;
    setAlpha(afTargetAlpha: number, abFade: boolean): void;
    setAttackActorOnSight(abAttackOnSight: boolean): void;
    setBribed(abBribe: boolean): void;
    setCrimeFaction(akFaction: Faction): void;
    setCriticalStage(aiStage: number): void;
    setDoingFavor(abDoingFavor: boolean): void;
    setDontMove(abDontMove: boolean): void;
    setExpressionModifier(index: number, value: number): void;
    setExpressionOverride(aiMood: number, aiStrength: number): void;
    setExpressionPhoneme(index: number, value: number): void;
    setEyeTexture(akNewTexture: TextureSet): void;
    setFactionRank(akFaction: Faction, aiRank: number): void;
    setForcedLandingMarker(aMarker: ObjectReference): void;
    setGhost(abIsGhost: boolean): void;
    setHeadTracking(abEnable: boolean): void;
    setIntimidated(abIntimidate: boolean): void;
    setLookAt(akTarget: ObjectReference, abPathingLookAt: boolean): void;
    setNoBleedoutRecovery(abAllowed: boolean): void;
    setNotShowOnStealthMeter(abNotShow: boolean): void;
    setOutfit(akOutfit: Outfit, abSleepOutfit: boolean): void;
    setPlayerControls(abControls: boolean): void;
    setPlayerResistingArrest(): void;
    setPlayerTeammate(abTeammate: boolean, abCanDoFavor: boolean): void;
    setRace(akRace: Race): void;
    setRelationshipRank(akOther: Actor, aiRank: number): void;
    setRestrained(abRestrained: boolean): void;
    setSubGraphFloatVariable(asVariableName: string, afValue: number): void;
    setUnconscious(abUnconscious: boolean): void;
    setVehicle(akVehicle: ObjectReference): void;
    setVoiceRecoveryTime(afTime: number): void;
    sheatheWeapon(): void;
    showBarterMenu(): void;
    showGiftMenu(abGivingGift: boolean, apFilterList: FormList, abShowStolenItems: boolean, abUseFavorPoints: boolean): Promise<number>;
    startCannibal(akTarget: Actor): void;
    startCombat(akTarget: Actor): void;
    startDeferredKill(): void;
    startSneaking(): void;
    startVampireFeed(akTarget: Actor): void;
    stopCombat(): void;
    stopCombatAlarm(): void;
    trapSoul(akTarget: Actor): boolean;
    unLockOwnedDoorsInCell(): void;
    unequipAll(): void;
    unequipItem(akItem: Form, abPreventEquip: boolean, abSilent: boolean): void;
    unequipItemEx(item: Form, equipSlot: number, preventEquip: boolean): void;
    unequipItemSlot(aiSlot: number): void;
    unequipShout(akShout: Shout): void;
    unequipSpell(akSpell: Spell, aiSource: number): void;
    updateWeight(neckDelta: number): void;
    willIntimidateSucceed(): boolean;
    wornHasKeyword(akKeyword: Keyword): boolean;
}

// Based on ActorBase.pex
export declare class ActorBase extends Form {
    static from(form: Form): ActorBase;
    getClass(): Class;
    getCombatStyle(): CombatStyle;
    getDeadCount(): number;
    getFaceMorph(index: number): number;
    getFacePreset(index: number): number;
    getFaceTextureSet(): TextureSet;
    getGiftFilter(): FormList;
    getHairColor(): ColorForm;
    getHeight(): number;
    getIndexOfHeadPartByType(type: number): number;
    getIndexOfOverlayHeadPartByType(type: number): number;
    getNthHeadPart(slotPart: number): HeadPart;
    getNthOverlayHeadPart(slotPart: number): HeadPart;
    getNthSpell(n: number): Spell;
    getNumHeadParts(): number;
    getNumOverlayHeadParts(): number;
    getOutfit(bSleepOutfit: boolean): Outfit;
    getRace(): Race;
    getSex(): number;
    getSkin(): Armor;
    getSkinFar(): Armor;
    getSpellCount(): number;
    getTemplate(): ActorBase;
    getVoiceType(): VoiceType;
    getWeight(): number;
    isEssential(): boolean;
    isInvulnerable(): boolean;
    isProtected(): boolean;
    isUnique(): boolean;
    setClass(c: Class): void;
    setCombatStyle(cs: CombatStyle): void;
    setEssential(abEssential: boolean): void;
    setFaceMorph(value: number, index: number): void;
    setFacePreset(value: number, index: number): void;
    setFaceTextureSet(textures: TextureSet): void;
    setHairColor(color: ColorForm): void;
    setHeight(height: number): void;
    setInvulnerable(abInvulnerable: boolean): void;
    setNthHeadPart(HeadPart: HeadPart, slotPart: number): void;
    setOutfit(akOutfit: Outfit, abSleepOutfit: boolean): void;
    setProtected(abProtected: boolean): void;
    setSkin(skin: Armor): void;
    setSkinFar(skin: Armor): void;
    setVoiceType(nVoice: VoiceType): void;
    setWeight(weight: number): void;
}

// Based on ActorValueInfo.pex
export declare class ActorValueInfo extends Form {
    static from(form: Form): ActorValueInfo;
    addSkillExperience(exp: number): void;
    getBaseValue(akActor: Actor): number;
    getCurrentValue(akActor: Actor): number;
    getExperienceForLevel(currentLevel: number): number;
    getMaximumValue(akActor: Actor): number;
    getPerkTree(list: FormList, akActor: Actor, unowned: boolean, allRanks: boolean): void;
    getPerks(akActor: Actor, unowned: boolean, allRanks: boolean): object[];
    getSkillExperience(): number;
    getSkillImproveMult(): number;
    getSkillImproveOffset(): number;
    getSkillLegendaryLevel(): number;
    getSkillOffsetMult(): number;
    getSkillUseMult(): number;
    isSkill(): boolean;
    setSkillExperience(exp: number): void;
    setSkillImproveMult(value: number): void;
    setSkillImproveOffset(value: number): void;
    setSkillLegendaryLevel(level: number): void;
    setSkillOffsetMult(value: number): void;
    setSkillUseMult(value: number): void;
    static getActorValueInfoByID(id: number): ActorValueInfo;
    static getActorValueInfoByName(avName: string): ActorValueInfo;
}

// Based on Alias.pex
export declare class Alias {
    static from(form: Form): Alias;
    getID(): number;
    getName(): string;
    getOwningQuest(): Quest;
    registerForActorAction(actionType: number): void;
    registerForAnimationEvent(akSender: ObjectReference, asEventName: string): boolean;
    registerForCameraState(): void;
    registerForControl(control: string): void;
    registerForCrosshairRef(): void;
    registerForKey(keyCode: number): void;
    registerForLOS(akViewer: Actor, akTarget: ObjectReference): void;
    registerForMenu(menuName: string): void;
    registerForModEvent(eventName: string, callbackName: string): void;
    registerForNiNodeUpdate(): void;
    registerForSingleLOSGain(akViewer: Actor, akTarget: ObjectReference): void;
    registerForSingleLOSLost(akViewer: Actor, akTarget: ObjectReference): void;
    registerForSingleUpdate(afInterval: number): void;
    registerForSingleUpdateGameTime(afInterval: number): void;
    registerForSleep(): void;
    registerForTrackedStatsEvent(): void;
    registerForUpdate(afInterval: number): void;
    registerForUpdateGameTime(afInterval: number): void;
    sendModEvent(eventName: string, strArg: string, numArg: number): void;
    startObjectProfiling(): void;
    stopObjectProfiling(): void;
    unregisterForActorAction(actionType: number): void;
    unregisterForAllControls(): void;
    unregisterForAllKeys(): void;
    unregisterForAllMenus(): void;
    unregisterForAllModEvents(): void;
    unregisterForAnimationEvent(akSender: ObjectReference, asEventName: string): void;
    unregisterForCameraState(): void;
    unregisterForControl(control: string): void;
    unregisterForCrosshairRef(): void;
    unregisterForKey(keyCode: number): void;
    unregisterForLOS(akViewer: Actor, akTarget: ObjectReference): void;
    unregisterForMenu(menuName: string): void;
    unregisterForModEvent(eventName: string): void;
    unregisterForNiNodeUpdate(): void;
    unregisterForSleep(): void;
    unregisterForTrackedStatsEvent(): void;
    unregisterForUpdate(): void;
    unregisterForUpdateGameTime(): void;
}

// Based on Ammo.pex
export declare class Ammo extends Form {
    static from(form: Form): Ammo;
    getDamage(): number;
    getProjectile(): Projectile;
    isBolt(): boolean;
}

// Based on MiscObject.pex
export declare class MiscObject extends Form {
    static from(form: Form): MiscObject;
}

// Based on Apparatus.pex
export declare class Apparatus extends MiscObject {
    static from(form: Form): Apparatus;
    getQuality(): number;
    setQuality(quality: number): void;
}

// Based on Armor.pex
export declare class Armor extends Form {
    static from(form: Form): Armor;
    addSlotToMask(slotMask: number): number;
    getArmorRating(): number;
    getEnchantment(): Enchantment;
    getIconPath(bFemalePath: boolean): string;
    getMessageIconPath(bFemalePath: boolean): string;
    getModelPath(bFemalePath: boolean): string;
    getNthArmorAddon(n: number): ArmorAddon;
    getNumArmorAddons(): number;
    getSlotMask(): number;
    getWarmthRating(): number;
    getWeightClass(): number;
    modArmorRating(modBy: number): void;
    removeSlotFromMask(slotMask: number): number;
    setArmorRating(armorRating: number): void;
    setEnchantment(e: Enchantment): void;
    setIconPath(path: string, bFemalePath: boolean): void;
    setMessageIconPath(path: string, bFemalePath: boolean): void;
    setModelPath(path: string, bFemalePath: boolean): void;
    setSlotMask(slotMask: number): void;
    setWeightClass(weightClass: number): void;
    static getMaskForSlot(slot: number): number;
}

// Based on ArmorAddon.pex
export declare class ArmorAddon extends Form {
    static from(form: Form): ArmorAddon;
    addSlotToMask(slotMask: number): number;
    getModelNthTextureSet(n: number, first: boolean, female: boolean): TextureSet;
    getModelNumTextureSets(first: boolean, female: boolean): number;
    getModelPath(firstPerson: boolean, female: boolean): string;
    getNthAdditionalRace(n: number): Race;
    getNumAdditionalRaces(): number;
    getSlotMask(): number;
    removeSlotFromMask(slotMask: number): number;
    setModelNthTextureSet(texture: TextureSet, n: number, first: boolean, female: boolean): void;
    setModelPath(path: string, firstPerson: boolean, female: boolean): void;
    setSlotMask(slotMask: number): void;
}

// Based on Art.pex
export declare class Art extends Form {
    static from(form: Form): Art;
    getModelPath(): string;
    setModelPath(path: string): void;
}

// Based on AssociationType.pex
export declare class AssociationType extends Form {
    static from(form: Form): AssociationType;
}

// Based on Book.pex
export declare class Book extends Form {
    static from(form: Form): Book;
    getSkill(): number;
    getSpell(): Spell;
    isRead(): boolean;
    isTakeable(): boolean;
}

// Based on Cell.pex
export declare class Cell extends Form {
    static from(form: Form): Cell;
    getActorOwner(): ActorBase;
    getFactionOwner(): Faction;
    getNthRef(n: number, formTypeFilter: number): ObjectReference;
    getNumRefs(formTypeFilter: number): number;
    getWaterLevel(): number;
    isAttached(): boolean;
    isInterior(): boolean;
    reset(): void;
    setActorOwner(akActor: ActorBase): void;
    setFactionOwner(akFaction: Faction): void;
    setFogColor(aiNearRed: number, aiNearGreen: number, aiNearBlue: number, aiFarRed: number, aiFarGreen: number, aiFarBlue: number): void;
    setFogPlanes(afNear: number, afFar: number): void;
    setFogPower(afPower: number): void;
    setPublic(abPublic: boolean): void;
}

// Based on Class.pex
export declare class Class extends Form {
    static from(form: Form): Class;
}

// Based on ColorForm.pex
export declare class ColorForm extends Form {
    static from(form: Form): ColorForm;
    getColor(): number;
    setColor(color: number): void;
}

// Based on CombatStyle.pex
export declare class CombatStyle extends Form {
    static from(form: Form): CombatStyle;
    getAllowDualWielding(): boolean;
    getAvoidThreatChance(): number;
    getCloseRangeDuelingCircleMult(): number;
    getCloseRangeDuelingFallbackMult(): number;
    getCloseRangeFlankingFlankDistance(): number;
    getCloseRangeFlankingStalkTime(): number;
    getDefensiveMult(): number;
    getFlightDiveBombChance(): number;
    getFlightFlyingAttackChance(): number;
    getFlightHoverChance(): number;
    getGroupOffensiveMult(): number;
    getLongRangeStrafeMult(): number;
    getMagicMult(): number;
    getMeleeAttackStaggeredMult(): number;
    getMeleeBashAttackMult(): number;
    getMeleeBashMult(): number;
    getMeleeBashPowerAttackMult(): number;
    getMeleeBashRecoiledMult(): number;
    getMeleeMult(): number;
    getMeleePowerAttackBlockingMult(): number;
    getMeleePowerAttackStaggeredMult(): number;
    getMeleeSpecialAttackMult(): number;
    getOffensiveMult(): number;
    getRangedMult(): number;
    getShoutMult(): number;
    getStaffMult(): number;
    getUnarmedMult(): number;
    setAllowDualWielding(allow: boolean): void;
    setAvoidThreatChance(chance: number): void;
    setCloseRangeDuelingCircleMult(mult: number): void;
    setCloseRangeDuelingFallbackMult(mult: number): void;
    setCloseRangeFlankingFlankDistance(mult: number): void;
    setCloseRangeFlankingStalkTime(mult: number): void;
    setDefensiveMult(mult: number): void;
    setFlightDiveBombChance(chance: number): void;
    setFlightFlyingAttackChance(mult: number): void;
    setFlightHoverChance(chance: number): void;
    setGroupOffensiveMult(mult: number): void;
    setLongRangeStrafeMult(mult: number): void;
    setMagicMult(mult: number): void;
    setMeleeAttackStaggeredMult(mult: number): void;
    setMeleeBashAttackMult(mult: number): void;
    setMeleeBashMult(mult: number): void;
    setMeleeBashPowerAttackMult(mult: number): void;
    setMeleeBashRecoiledMult(mult: number): void;
    setMeleeMult(mult: number): void;
    setMeleePowerAttackBlockingMult(mult: number): void;
    setMeleePowerAttackStaggeredMult(mult: number): void;
    setMeleeSpecialAttackMult(mult: number): void;
    setOffensiveMult(mult: number): void;
    setRangedMult(mult: number): void;
    setShoutMult(mult: number): void;
    setStaffMult(mult: number): void;
    setUnarmedMult(mult: number): void;
}

// Based on ConstructibleObject.pex
export declare class ConstructibleObject extends MiscObject {
    static from(form: Form): ConstructibleObject;
    getNthIngredient(n: number): Form;
    getNthIngredientQuantity(n: number): number;
    getNumIngredients(): number;
    getResult(): Form;
    getResultQuantity(): number;
    getWorkbenchKeyword(): Keyword;
    setNthIngredient(required: Form, n: number): void;
    setNthIngredientQuantity(value: number, n: number): void;
    setResult(result: Form): void;
    setResultQuantity(quantity: number): void;
    setWorkbenchKeyword(aKeyword: Keyword): void;
}

// Based on Container.pex
export declare class Container extends Form {
    static from(form: Form): Container;
}

// Based on Debug.pex
export declare class Debug {
    static from(form: Form): Debug;
    static centerOnCell(param1: string): void;
    static centerOnCellAndWait(param1: string): Promise<number>;
    static closeUserLog(param1: string): void;
    static dBSendPlayerPosition(): void;
    static debugChannelNotify(param1: string, param2: string): void;
    static dumpAliasData(param1: Quest): void;
    static getConfigName(): Promise<string>;
    static getPlatformName(): Promise<string>;
    static getVersionNumber(): Promise<string>;
    static messageBox(param1: string): void;
    static notification(param1: string): void;
    static openUserLog(param1: string): boolean;
    static playerMoveToAndWait(param1: string): Promise<number>;
    static quitGame(): void;
    static sendAnimationEvent(param1: ObjectReference, param2: string): void;
    static setFootIK(param1: boolean): void;
    static setGodMode(param1: boolean): void;
    static showRefPosition(arRef: ObjectReference): void;
    static startScriptProfiling(param1: string): void;
    static startStackProfiling(): void;
    static stopScriptProfiling(param1: string): void;
    static stopStackProfiling(): void;
    static takeScreenshot(param1: string): void;
    static toggleAI(): void;
    static toggleCollisions(): void;
    static toggleMenus(): void;
    static trace(param1: string, param2: number): void;
    static traceStack(param1: string, param2: number): void;
    static traceUser(param1: string, param2: string, param3: number): boolean;
}

// Based on DefaultObjectManager.pex
export declare class DefaultObjectManager extends Form {
    static from(form: Form): DefaultObjectManager;
    getForm(key: string): Form;
    setForm(key: string, newForm: Form): void;
}

// Based on Door.pex
export declare class Door extends Form {
    static from(form: Form): Door;
}

// Based on EffectShader.pex
export declare class EffectShader extends Form {
    static from(form: Form): EffectShader;
    play(param1: ObjectReference, param2: number): void;
    stop(param1: ObjectReference): void;
}

// Based on Enchantment.pex
export declare class Enchantment extends Form {
    static from(form: Form): Enchantment;
    getBaseEnchantment(): Enchantment;
    getCostliestEffectIndex(): number;
    getKeywordRestrictions(): FormList;
    getNthEffectArea(index: number): number;
    getNthEffectDuration(index: number): number;
    getNthEffectMagicEffect(index: number): MagicEffect;
    getNthEffectMagnitude(index: number): number;
    getNumEffects(): number;
    isHostile(): boolean;
    setKeywordRestrictions(newKeywordList: FormList): void;
    setNthEffectArea(index: number, value: number): void;
    setNthEffectDuration(index: number, value: number): void;
    setNthEffectMagnitude(index: number, value: number): void;
}

// Based on EncounterZone.pex
export declare class EncounterZone extends Form {
    static from(form: Form): EncounterZone;
}

// Based on EquipSlot.pex
export declare class EquipSlot extends Form {
    static from(form: Form): EquipSlot;
    getNthParent(n: number): EquipSlot;
    getNumParents(): number;
}

// Based on Explosion.pex
export declare class Explosion extends Form {
    static from(form: Form): Explosion;
}

// Based on Faction.pex
export declare class Faction extends Form {
    static from(form: Form): Faction;
    canPayCrimeGold(): boolean;
    clearFactionFlag(flag: number): void;
    getBuySellList(): FormList;
    getCrimeGold(): number;
    getCrimeGoldNonViolent(): number;
    getCrimeGoldViolent(): number;
    getInfamy(): number;
    getInfamyNonViolent(): number;
    getInfamyViolent(): number;
    getMerchantContainer(): ObjectReference;
    getReaction(akOther: Faction): number;
    getStolenItemValueCrime(): number;
    getStolenItemValueNoCrime(): number;
    getVendorEndHour(): number;
    getVendorRadius(): number;
    getVendorStartHour(): number;
    isFactionFlagSet(flag: number): boolean;
    isFactionInCrimeGroup(akOther: Faction): boolean;
    isNotSellBuy(): boolean;
    isPlayerExpelled(): boolean;
    modCrimeGold(aiAmount: number, abViolent: boolean): void;
    modReaction(akOther: Faction, aiAmount: number): void;
    onlyBuysStolenItems(): boolean;
    playerPayCrimeGold(abRemoveStolenItems: boolean, abGoToJail: boolean): void;
    sendAssaultAlarm(): void;
    sendPlayerToJail(abRemoveInventory: boolean, abRealJail: boolean): Promise<void>;
    setAlly(akOther: Faction, abSelfIsFriendToOther: boolean, abOtherIsFriendToSelf: boolean): void;
    setBuySellList(akList: FormList): void;
    setCrimeGold(aiGold: number): void;
    setCrimeGoldViolent(aiGold: number): void;
    setEnemy(akOther: Faction, abSelfIsNeutralToOther: boolean, abOtherIsNeutralToSelf: boolean): void;
    setFactionFlag(flag: number): void;
    setMerchantContainer(akContainer: ObjectReference): void;
    setNotSellBuy(notSellBuy: boolean): void;
    setOnlyBuysStolenItems(onlyStolen: boolean): void;
    setPlayerEnemy(abIsEnemy: boolean): void;
    setPlayerExpelled(abIsExpelled: boolean): void;
    setReaction(akOther: Faction, aiNewValue: number): void;
    setVendorEndHour(hour: number): void;
    setVendorRadius(radius: number): void;
    setVendorStartHour(hour: number): void;
}

// Based on Flora.pex
export declare class Flora extends Activator {
    static from(form: Form): Flora;
    getHarvestSound(): SoundDescriptor;
    getIngredient(): Form;
    setHarvestSound(akSoundDescriptor: SoundDescriptor): void;
    setIngredient(akIngredient: Form): void;
}

// Based on FormList.pex
export declare class FormList extends Form {
    static from(form: Form): FormList;
    addForm(apForm: Form): void;
    addForms(forms: object[]): void;
    find(apForm: Form): number;
    getAt(aiIndex: number): Form;
    getSize(): number;
    hasForm(akForm: Form): boolean;
    removeAddedForm(apForm: Form): void;
    revert(): void;
    toArray(): object[];
}

// Based on Furniture.pex
export declare class Furniture extends Activator {
    static from(form: Form): Furniture;
}

// Based on Game.pex
export declare class Game {
    static from(form: Form): Game;
    static addAchievement(aiAchievementID: number): void;
    static addHavokBallAndSocketConstraint(arRefA: ObjectReference, arRefANode: string, arRefB: ObjectReference, arRefBNode: string, afRefALocalOffsetX: number, afRefALocalOffsetY: number, afRefALocalOffsetZ: number, afRefBLocalOffsetX: number, afRefBLocalOffsetY: number, afRefBLocalOffsetZ: number): Promise<boolean>;
    static addPerkPoints(aiPerkPoints: number): void;
    static advanceSkill(asSkillName: string, afMagnitude: number): void;
    static calculateFavorCost(aiFavorPrice: number): number;
    static clearPrison(): void;
    static clearTempEffects(): void;
    static disablePlayerControls(abMovement: boolean, abFighting: boolean, abCamSwitch: boolean, abLooking: boolean, abSneaking: boolean, abMenu: boolean, abActivate: boolean, abJournalTabs: boolean, aiDisablePOVType: number): void;
    static enableFastTravel(abEnable: boolean): void;
    static enablePlayerControls(abMovement: boolean, abFighting: boolean, abCamSwitch: boolean, abLooking: boolean, abSneaking: boolean, abMenu: boolean, abActivate: boolean, abJournalTabs: boolean, aiDisablePOVType: number): void;
    static fadeOutGame(abFadingOut: boolean, abBlackFade: boolean, afSecsBeforeFade: number, afFadeDuration: number): void;
    static fastTravel(akDestination: ObjectReference): void;
    static findClosestActor(afX: number, afY: number, afZ: number, afRadius: number): Actor;
    static findClosestReferenceOfAnyTypeInList(arBaseObjects: FormList, afX: number, afY: number, afZ: number, afRadius: number): ObjectReference;
    static findClosestReferenceOfType(arBaseObject: Form, afX: number, afY: number, afZ: number, afRadius: number): ObjectReference;
    static findRandomActor(afX: number, afY: number, afZ: number, afRadius: number): Actor;
    static findRandomReferenceOfAnyTypeInList(arBaseObjects: FormList, afX: number, afY: number, afZ: number, afRadius: number): ObjectReference;
    static findRandomReferenceOfType(arBaseObject: Form, afX: number, afY: number, afZ: number, afRadius: number): ObjectReference;
    static forceFirstPerson(): void;
    static forceThirdPerson(): void;
    static getCameraState(): number;
    static getCurrentConsoleRef(): ObjectReference;
    static getCurrentCrosshairRef(): ObjectReference;
    static getDialogueTarget(): ObjectReference;
    static getExperienceForLevel(currentLevel: number): number;
    static getForm(aiFormID: number): Form;
    static getFormEx(formId: number): Form;
    static getFormFromFile(aiFormID: number, asFilename: string): Form;
    static getGameSettingFloat(asGameSetting: string): number;
    static getGameSettingInt(asGameSetting: string): number;
    static getGameSettingString(asGameSetting: string): Promise<string>;
    static getHotkeyBoundObject(hotkey: number): Form;
    static getLightModAuthor(idx: number): string;
    static getLightModByName(name: string): number;
    static getLightModCount(): number;
    static getLightModDependencyCount(idx: number): number;
    static getLightModDescription(idx: number): string;
    static getLightModName(idx: number): string;
    static getModAuthor(modIndex: number): string;
    static getModByName(name: string): number;
    static getModCount(): number;
    static getModDependencyCount(modIndex: number): number;
    static getModDescription(modIndex: number): string;
    static getModName(modIndex: number): string;
    static getNthLightModDependency(modIdx: number, idx: number): number;
    static getNthTintMaskColor(n: number): number;
    static getNthTintMaskTexturePath(n: number): string;
    static getNthTintMaskType(n: number): number;
    static getNumTintMasks(): number;
    static getNumTintsByType(type: number): number;
    static getPerkPoints(): number;
    static getPlayerExperience(): number;
    static getPlayerGrabbedRef(): ObjectReference;
    static getPlayerMovementMode(): boolean;
    static getPlayersLastRiddenHorse(): Actor;
    static getRealHoursPassed(): number;
    static getSunPositionX(): number;
    static getSunPositionY(): number;
    static getSunPositionZ(): number;
    static getTintMaskColor(type: number, index: number): number;
    static getTintMaskTexturePath(type: number, index: number): string;
    static hideTitleSequenceMenu(): void;
    static incrementSkill(asSkillName: string): void;
    static incrementSkillBy(asSkillName: string, aiCount: number): void;
    static incrementStat(asStatName: string, aiModAmount: number): void;
    static isActivateControlsEnabled(): boolean;
    static isCamSwitchControlsEnabled(): boolean;
    static isFastTravelControlsEnabled(): boolean;
    static isFastTravelEnabled(): boolean;
    static isFightingControlsEnabled(): boolean;
    static isJournalControlsEnabled(): boolean;
    static isLookingControlsEnabled(): boolean;
    static isMenuControlsEnabled(): boolean;
    static isMovementControlsEnabled(): boolean;
    static isObjectFavorited(Form: Form): boolean;
    static isPlayerSungazing(): boolean;
    static isPluginInstalled(name: string): boolean;
    static isSneakingControlsEnabled(): boolean;
    static isWordUnlocked(akWord: WordOfPower): boolean;
    static loadGame(name: string): void;
    static modPerkPoints(perkPoints: number): void;
    static playBink(asFilename: string, abInterruptible: boolean, abMuteAudio: boolean, abMuteMusic: boolean, abLetterbox: boolean): void;
    static precacheCharGen(): void;
    static precacheCharGenClear(): void;
    static queryStat(asStat: string): number;
    static quitToMainMenu(): void;
    static removeHavokConstraints(arFirstRef: ObjectReference, arFirstRefNodeName: string, arSecondRef: ObjectReference, arSecondRefNodeName: string): Promise<boolean>;
    static requestAutosave(): void;
    static requestModel(asModelName: string): void;
    static requestSave(): void;
    static saveGame(name: string): void;
    static sendWereWolfTransformation(): void;
    static serveTime(): void;
    static setAllowFlyingMountLandingRequests(abAllow: boolean): void;
    static setBeastForm(abEntering: boolean): void;
    static setCameraTarget(arTarget: Actor): void;
    static setGameSettingBool(setting: string, value: boolean): void;
    static setGameSettingFloat(setting: string, value: number): void;
    static setGameSettingInt(setting: string, value: number): void;
    static setGameSettingString(setting: string, value: string): void;
    static setHudCartMode(abSetCartMode: boolean): void;
    static setInChargen(abDisableSaving: boolean, abDisableWaiting: boolean, abShowControlsDisabledMessage: boolean): void;
    static setMiscStat(name: string, value: number): void;
    static setNthTintMaskColor(n: number, color: number): void;
    static setNthTintMaskTexturePath(path: string, n: number): void;
    static setPerkPoints(perkPoints: number): void;
    static setPlayerAIDriven(abAIDriven: boolean): void;
    static setPlayerExperience(exp: number): void;
    static setPlayerLevel(level: number): void;
    static setPlayerReportCrime(abReportCrime: boolean): void;
    static setPlayersLastRiddenHorse(horse: Actor): void;
    static setSittingRotation(afValue: number): void;
    static setSunGazeImageSpaceModifier(apImod: ImageSpaceModifier): void;
    static setTintMaskColor(color: number, type: number, index: number): void;
    static setTintMaskTexturePath(path: string, type: number, index: number): void;
    static showFirstPersonGeometry(abShow: boolean): void;
    static showLimitedRaceMenu(): void;
    static showRaceMenu(): void;
    static showTitleSequenceMenu(): void;
    static showTrainingMenu(aTrainer: Actor): void;
    static startTitleSequence(asSequenceName: string): void;
    static teachWord(akWord: WordOfPower): void;
    static triggerScreenBlood(aiValue: number): void;
    static unbindObjectHotkey(hotkey: number): void;
    static unlockWord(akWord: WordOfPower): void;
    static updateHairColor(): void;
    static updateThirdPerson(): void;
    static updateTintMaskColors(): void;
    static usingGamepad(): boolean;
    static getPlayer(): Actor;
    static shakeCamera(akSource: ObjectReference, afStrength: number, afDuration: number): void;
    static shakeController(afSmallMotorStrength: number, afBigMotorStreangth: number, afDuration: number): void;
}

// Based on GlobalVariable.pex
export declare class GlobalVariable extends Form {
    static from(form: Form): GlobalVariable;
    getValue(): number;
    setValue(param1: number): void;
}

// Based on Hazard.pex
export declare class Hazard extends Form {
    static from(form: Form): Hazard;
}

// Based on HeadPart.pex
export declare class HeadPart extends Form {
    static from(form: Form): HeadPart;
    getIndexOfExtraPart(p: HeadPart): number;
    getNthExtraPart(n: number): HeadPart;
    getNumExtraParts(): number;
    getPartName(): string;
    getType(): number;
    getValidRaces(): FormList;
    hasExtraPart(p: HeadPart): boolean;
    isExtraPart(): boolean;
    setValidRaces(vRaces: FormList): void;
    static getHeadPart(name: string): HeadPart;
}

// Based on Idle.pex
export declare class Idle extends Form {
    static from(form: Form): Idle;
}

// Based on ImageSpaceModifier.pex
export declare class ImageSpaceModifier extends Form {
    static from(form: Form): ImageSpaceModifier;
    apply(param1: number): void;
    applyCrossFade(param1: number): void;
    popTo(param1: ImageSpaceModifier, param2: number): void;
    remove(): void;
    static removeCrossFade(param1: number): void;
}

// Based on ImpactDataSet.pex
export declare class ImpactDataSet extends Form {
    static from(form: Form): ImpactDataSet;
}

// Based on Ingredient.pex
export declare class Ingredient extends Form {
    static from(form: Form): Ingredient;
    getCostliestEffectIndex(): number;
    getEffectAreas(): number[];
    getEffectDurations(): number[];
    getEffectMagnitudes(): number[];
    getIsNthEffectKnown(index: number): boolean;
    getMagicEffects(): object[];
    getNthEffectArea(index: number): number;
    getNthEffectDuration(index: number): number;
    getNthEffectMagicEffect(index: number): MagicEffect;
    getNthEffectMagnitude(index: number): number;
    getNumEffects(): number;
    isHostile(): boolean;
    learnAllEffects(): void;
    learnEffect(aiIndex: number): void;
    learnNextEffect(): number;
    setNthEffectArea(index: number, value: number): void;
    setNthEffectDuration(index: number, value: number): void;
    setNthEffectMagnitude(index: number, value: number): void;
}

// Based on Input.pex
export declare class Input {
    static from(form: Form): Input;
    static getMappedControl(keycode: number): string;
    static getMappedKey(control: string, deviceType: number): number;
    static getNthKeyPressed(n: number): number;
    static getNumKeysPressed(): number;
    static holdKey(dxKeycode: number): void;
    static isKeyPressed(dxKeycode: number): boolean;
    static releaseKey(dxKeycode: number): void;
    static tapKey(dxKeycode: number): void;
}

// Based on Key.pex
export declare class Key extends MiscObject {
    static from(form: Form): Key;
}

// Based on Keyword.pex
export declare class Keyword extends Form {
    static from(form: Form): Keyword;
    getString(): string;
    sendStoryEvent(akLoc: Location, akRef1: ObjectReference, akRef2: ObjectReference, aiValue1: number, aiValue2: number): void;
    sendStoryEventAndWait(akLoc: Location, akRef1: ObjectReference, akRef2: ObjectReference, aiValue1: number, aiValue2: number): Promise<boolean>;
    static getKeyword(key: string): Keyword;
}

// Based on LeveledActor.pex
export declare class LeveledActor extends Form {
    static from(form: Form): LeveledActor;
    addForm(apForm: Form, aiLevel: number): void;
    getNthCount(n: number): number;
    getNthForm(n: number): Form;
    getNthLevel(n: number): number;
    getNumForms(): number;
    revert(): void;
    setNthCount(n: number, count: number): void;
    setNthLevel(n: number, level: number): void;
}

// Based on LeveledItem.pex
export declare class LeveledItem extends Form {
    static from(form: Form): LeveledItem;
    addForm(apForm: Form, aiLevel: number, aiCount: number): void;
    getChanceGlobal(): GlobalVariable;
    getChanceNone(): number;
    getNthCount(n: number): number;
    getNthForm(n: number): Form;
    getNthLevel(n: number): number;
    getNumForms(): number;
    revert(): void;
    setChanceGlobal(glob: GlobalVariable): void;
    setChanceNone(chance: number): void;
    setNthCount(n: number, count: number): void;
    setNthLevel(n: number, level: number): void;
}

// Based on LeveledSpell.pex
export declare class LeveledSpell extends Form {
    static from(form: Form): LeveledSpell;
    addForm(apForm: Form, aiLevel: number): void;
    getChanceNone(): number;
    getNthForm(n: number): Form;
    getNthLevel(n: number): number;
    getNumForms(): number;
    revert(): void;
    setChanceNone(chance: number): void;
    setNthLevel(n: number, level: number): void;
}

// Based on Light.pex
export declare class Light extends Form {
    static from(form: Form): Light;
    getWarmthRating(): number;
}

// Based on Location.pex
export declare class Location extends Form {
    static from(form: Form): Location;
    getKeywordData(param1: Keyword): number;
    getRefTypeAliveCount(param1: LocationRefType): number;
    getRefTypeDeadCount(param1: LocationRefType): number;
    hasCommonParent(param1: Location, param2: Keyword): boolean;
    hasRefType(param1: LocationRefType): boolean;
    isChild(param1: Location): boolean;
    isCleared(): boolean;
    isLoaded(): boolean;
    setCleared(param1: boolean): void;
    setKeywordData(param1: Keyword, param2: number): void;
}

// Based on LocationAlias.pex
export declare class LocationAlias extends Alias {
    static from(form: Form): LocationAlias;
    clear(): void;
    forceLocationTo(param1: Location): void;
    getLocation(): Location;
}

// Based on LocationRefType.pex
export declare class LocationRefType extends Keyword {
    static from(form: Form): LocationRefType;
}

// Based on MagicEffect.pex
export declare class MagicEffect extends Form {
    static from(form: Form): MagicEffect;
    clearEffectFlag(flag: number): void;
    getArea(): number;
    getAssociatedSkill(): Promise<string>;
    getBaseCost(): number;
    getCastTime(): number;
    getCastingArt(): Art;
    getCastingType(): number;
    getDeliveryType(): number;
    getEnchantArt(): Art;
    getEnchantShader(): EffectShader;
    getEquipAbility(): Spell;
    getExplosion(): Explosion;
    getHitEffectArt(): Art;
    getHitShader(): EffectShader;
    getImageSpaceMod(): ImageSpaceModifier;
    getImpactDataSet(): ImpactDataSet;
    getLight(): Light;
    getPerk(): Perk;
    getProjectile(): Projectile;
    getResistance(): string;
    getSkillLevel(): number;
    getSkillUsageMult(): number;
    getSounds(): object[];
    isEffectFlagSet(flag: number): boolean;
    setArea(area: number): void;
    setAssociatedSkill(skill: string): void;
    setBaseCost(cost: number): void;
    setCastTime(castTime: number): void;
    setCastingArt(obj: Art): void;
    setEffectFlag(flag: number): void;
    setEnchantArt(obj: Art): void;
    setEnchantShader(obj: EffectShader): void;
    setEquipAbility(obj: Spell): void;
    setExplosion(obj: Explosion): void;
    setHitEffectArt(obj: Art): void;
    setHitShader(obj: EffectShader): void;
    setImageSpaceMod(obj: ImageSpaceModifier): void;
    setImpactDataSet(obj: ImpactDataSet): void;
    setLight(obj: Light): void;
    setPerk(obj: Perk): void;
    setProjectile(obj: Projectile): void;
    setResistance(skill: string): void;
    setSkillLevel(level: number): void;
    setSkillUsageMult(usageMult: number): void;
}

// Based on Message.pex
export declare class Message extends Form {
    static from(form: Form): Message;
    show(param1: number, param2: number, param3: number, param4: number, param5: number, param6: number, param7: number, param8: number, param9: number): Promise<number>;
    showAsHelpMessage(param1: string, param2: number, param3: number, param4: number): void;
    static resetHelpMessage(param1: string): void;
}

// Based on MusicType.pex
export declare class MusicType extends Form {
    static from(form: Form): MusicType;
    add(): void;
    remove(): void;
}

// Based on NetImmerse.pex
export declare class NetImmerse {
    static from(form: Form): NetImmerse;
    static getNodeLocalPosition(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static getNodeLocalPositionX(ref: ObjectReference, node: string, firstPerson: boolean): number;
    static getNodeLocalPositionY(ref: ObjectReference, node: string, firstPerson: boolean): number;
    static getNodeLocalPositionZ(ref: ObjectReference, node: string, firstPerson: boolean): number;
    static getNodeLocalRotationEuler(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static getNodeLocalRotationMatrix(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static getNodeScale(ref: ObjectReference, node: string, firstPerson: boolean): number;
    static getNodeWorldPosition(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static getNodeWorldPositionX(ref: ObjectReference, node: string, firstPerson: boolean): number;
    static getNodeWorldPositionY(ref: ObjectReference, node: string, firstPerson: boolean): number;
    static getNodeWorldPositionZ(ref: ObjectReference, node: string, firstPerson: boolean): number;
    static getNodeWorldRotationEuler(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static getNodeWorldRotationMatrix(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static getRelativeNodePosition(ref: ObjectReference, nodeA: string, nodeB: string, _in: number[], firstPerson: boolean): boolean;
    static getRelativeNodePositionX(ref: ObjectReference, nodeA: string, nodeB: string, firstPerson: boolean): number;
    static getRelativeNodePositionY(ref: ObjectReference, nodeA: string, nodeB: string, firstPerson: boolean): number;
    static getRelativeNodePositionZ(ref: ObjectReference, nodeA: string, nodeB: string, firstPerson: boolean): number;
    static hasNode(ref: ObjectReference, node: string, firstPerson: boolean): boolean;
    static setNodeLocalPosition(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static setNodeLocalPositionX(ref: ObjectReference, node: string, x: number, firstPerson: boolean): void;
    static setNodeLocalPositionY(ref: ObjectReference, node: string, y: number, firstPerson: boolean): void;
    static setNodeLocalPositionZ(ref: ObjectReference, node: string, z: number, firstPerson: boolean): void;
    static setNodeLocalRotationEuler(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static setNodeLocalRotationMatrix(ref: ObjectReference, node: string, _in: number[], firstPerson: boolean): boolean;
    static setNodeScale(ref: ObjectReference, node: string, scale: number, firstPerson: boolean): void;
    static setNodeTextureSet(ref: ObjectReference, node: string, tSet: TextureSet, firstPerson: boolean): void;
}

// Based on Outfit.pex
export declare class Outfit extends Form {
    static from(form: Form): Outfit;
    getNthPart(n: number): Form;
    getNumParts(): number;
}

// Based on Projectile.pex
export declare class Projectile extends Form {
    static from(form: Form): Projectile;
}

// Based on Package.pex
export declare class Package extends Form {
    static from(form: Form): Package;
    getOwningQuest(): Quest;
    getTemplate(): Package;
}

// Based on Perk.pex
export declare class Perk extends Form {
    static from(form: Form): Perk;
    getNextPerk(): Perk;
    getNthEntryLeveledList(n: number): LeveledItem;
    getNthEntryPriority(n: number): number;
    getNthEntryQuest(n: number): Quest;
    getNthEntryRank(n: number): number;
    getNthEntrySpell(n: number): Spell;
    getNthEntryStage(n: number): number;
    getNthEntryText(n: number): string;
    getNthEntryValue(n: number, i: number): number;
    getNumEntries(): number;
    setNthEntryLeveledList(n: number, lList: LeveledItem): boolean;
    setNthEntryPriority(n: number, priority: number): boolean;
    setNthEntryQuest(n: number, newQuest: Quest): boolean;
    setNthEntryRank(n: number, rank: number): boolean;
    setNthEntrySpell(n: number, newSpell: Spell): boolean;
    setNthEntryStage(n: number, stage: number): boolean;
    setNthEntryText(n: number, newText: string): boolean;
    setNthEntryValue(n: number, i: number, value: number): boolean;
}

// Based on Potion.pex
export declare class Potion extends Form {
    static from(form: Form): Potion;
    getCostliestEffectIndex(): number;
    getEffectAreas(): number[];
    getEffectDurations(): number[];
    getEffectMagnitudes(): number[];
    getMagicEffects(): object[];
    getNthEffectArea(index: number): number;
    getNthEffectDuration(index: number): number;
    getNthEffectMagicEffect(index: number): MagicEffect;
    getNthEffectMagnitude(index: number): number;
    getNumEffects(): number;
    getUseSound(): SoundDescriptor;
    isFood(): boolean;
    isHostile(): boolean;
    isPoison(): boolean;
    setNthEffectArea(index: number, value: number): void;
    setNthEffectDuration(index: number, value: number): void;
    setNthEffectMagnitude(index: number, value: number): void;
}

// Based on Quest.pex
export declare class Quest extends Form {
    static from(form: Form): Quest;
    completeAllObjectives(): void;
    completeQuest(): void;
    failAllObjectives(): void;
    getAlias(aiAliasID: number): Alias;
    getAliasById(aliasId: number): Alias;
    getAliasByName(name: string): Alias;
    getAliases(): object[];
    getCurrentStageID(): number;
    getID(): string;
    getNthAlias(index: number): Alias;
    getNumAliases(): number;
    getPriority(): number;
    isActive(): boolean;
    isCompleted(): boolean;
    isObjectiveCompleted(aiObjective: number): boolean;
    isObjectiveDisplayed(aiObjective: number): boolean;
    isObjectiveFailed(aiObjective: number): boolean;
    isRunning(): boolean;
    isStageDone(aiStage: number): boolean;
    isStarting(): boolean;
    isStopped(): boolean;
    isStopping(): boolean;
    reset(): void;
    setActive(abActive: boolean): void;
    setCurrentStageID(aiStageID: number): Promise<boolean>;
    setObjectiveCompleted(aiObjective: number, abCompleted: boolean): void;
    setObjectiveDisplayed(aiObjective: number, abDisplayed: boolean, abForce: boolean): void;
    setObjectiveFailed(aiObjective: number, abFailed: boolean): void;
    start(): Promise<boolean>;
    stop(): void;
    updateCurrentInstanceGlobal(aUpdateGlobal: GlobalVariable): boolean;
    static getQuest(editorId: string): Quest;
}

// Based on Race.pex
export declare class Race extends Form {
    static from(form: Form): Race;
    clearRaceFlag(n: number): void;
    getDefaultVoiceType(female: boolean): VoiceType;
    getNthSpell(n: number): Spell;
    getSkin(): Armor;
    getSpellCount(): number;
    isRaceFlagSet(n: number): boolean;
    setDefaultVoiceType(female: boolean, voice: VoiceType): void;
    setRaceFlag(n: number): void;
    setSkin(skin: Armor): void;
    static getNthPlayableRace(n: number): Race;
    static getNumPlayableRaces(): number;
    static getRace(editorId: string): Race;
}

// Based on ReferenceAlias.pex
export declare class ReferenceAlias extends Alias {
    static from(form: Form): ReferenceAlias;
    addInventoryEventFilter(param1: Form): void;
    clear(): void;
    forceRefTo(param1: ObjectReference): void;
    getReference(): ObjectReference;
    removeAllInventoryEventFilters(): void;
    removeInventoryEventFilter(param1: Form): void;
}

// Based on Spell.pex
export declare class Spell extends Form {
    static from(form: Form): Spell;
    cast(akSource: ObjectReference, akTarget: ObjectReference): Promise<void>;
    getCastTime(): number;
    getCostliestEffectIndex(): number;
    getEffectAreas(): number[];
    getEffectDurations(): number[];
    getEffectMagnitudes(): number[];
    getEffectiveMagickaCost(caster: Actor): number;
    getEquipType(): EquipSlot;
    getMagicEffects(): object[];
    getMagickaCost(): number;
    getNthEffectArea(index: number): number;
    getNthEffectDuration(index: number): number;
    getNthEffectMagicEffect(index: number): MagicEffect;
    getNthEffectMagnitude(index: number): number;
    getNumEffects(): number;
    getPerk(): Perk;
    isHostile(): boolean;
    preload(): void;
    remoteCast(akSource: ObjectReference, akBlameActor: Actor, akTarget: ObjectReference): Promise<void>;
    setEquipType(type: EquipSlot): void;
    setNthEffectArea(index: number, value: number): void;
    setNthEffectDuration(index: number, value: number): void;
    setNthEffectMagnitude(index: number, value: number): void;
    unload(): void;
}

// Based on Static.pex
export declare class Static extends Form {
    static from(form: Form): Static;
}

// Based on Scene.pex
export declare class Scene extends Form {
    static from(form: Form): Scene;
    forceStart(): void;
    getOwningQuest(): Quest;
    isActionComplete(param1: number): boolean;
    isPlaying(): boolean;
    start(): void;
    stop(): void;
}

// Based on Scroll.pex
export declare class Scroll extends Form {
    static from(form: Form): Scroll;
    cast(akSource: ObjectReference, akTarget: ObjectReference): Promise<void>;
    getCastTime(): number;
    getCostliestEffectIndex(): number;
    getEffectAreas(): number[];
    getEffectDurations(): number[];
    getEffectMagnitudes(): number[];
    getEquipType(): EquipSlot;
    getMagicEffects(): object[];
    getNthEffectArea(index: number): number;
    getNthEffectDuration(index: number): number;
    getNthEffectMagicEffect(index: number): MagicEffect;
    getNthEffectMagnitude(index: number): number;
    getNumEffects(): number;
    getPerk(): Perk;
    setEquipType(type: EquipSlot): void;
    setNthEffectArea(index: number, value: number): void;
    setNthEffectDuration(index: number, value: number): void;
    setNthEffectMagnitude(index: number, value: number): void;
}

// Based on ShaderParticleGeometry.pex
export declare class ShaderParticleGeometry extends Form {
    static from(form: Form): ShaderParticleGeometry;
    apply(param1: number): void;
    remove(param1: number): void;
}

// Based on Shout.pex
export declare class Shout extends Form {
    static from(form: Form): Shout;
    getNthRecoveryTime(n: number): number;
    getNthSpell(n: number): Spell;
    getNthWordOfPower(n: number): WordOfPower;
    setNthRecoveryTime(n: number, time: number): void;
    setNthSpell(n: number, aSpell: Spell): void;
    setNthWordOfPower(n: number, aWoop: WordOfPower): void;
}

// Based on SoulGem.pex
export declare class SoulGem extends MiscObject {
    static from(form: Form): SoulGem;
    getGemSize(): number;
    getSoulSize(): number;
}

// Based on Sound.pex
export declare class Sound extends Form {
    static from(form: Form): Sound;
    getDescriptor(): SoundDescriptor;
    play(akSource: ObjectReference): number;
    playAndWait(akSource: ObjectReference): Promise<boolean>;
    static setInstanceVolume(aiPlaybackInstance: number, afVolume: number): void;
    static stopInstance(aiPlaybackInstance: number): void;
}

// Based on SoundCategory.pex
export declare class SoundCategory extends Form {
    static from(form: Form): SoundCategory;
    mute(): void;
    pause(): void;
    setFrequency(param1: number): void;
    setVolume(param1: number): void;
    unMute(): void;
    unPause(): void;
}

// Based on SoundDescriptor.pex
export declare class SoundDescriptor extends Form {
    static from(form: Form): SoundDescriptor;
    getDecibelAttenuation(): number;
    getDecibelVariance(): number;
    getFrequencyShift(): number;
    getFrequencyVariance(): number;
    setDecibelAttenuation(dbAttenuation: number): void;
    setDecibelVariance(dbVariance: number): void;
    setFrequencyShift(frequencyShift: number): void;
    setFrequencyVariance(frequencyVariance: number): void;
}

// Based on TESModPlatform.pex
export declare class TESModPlatform {
    static from(form: Form): TESModPlatform;
    static addItemEx(containerRefr: ObjectReference, item: Form, countDelta: number, health: number, enchantment: Enchantment, maxCharge: number, removeEnchantmentOnUnequip: boolean, chargePercent: number, textDisplayData: string, soul: number, poison: Potion, poisonCount: number): void;
    static clearTintMasks(targetActor: Actor): void;
    static createNpc(): ActorBase;
    static getNthVtableElement(pointer: Form, pointerOffset: number, elementIndex: number): number;
    static getSkinColor(base: ActorBase): ColorForm;
    static isPlayerRunningEnabled(): boolean;
    static moveRefrToPosition(refr: ObjectReference, cell: Cell, world: WorldSpace, posX: number, posY: number, posZ: number, rotX: number, rotY: number, rotZ: number): void;
    static pushTintMask(targetActor: Actor, type: number, argb: number, texturePath: string): void;
    static pushWornState(worn: boolean, wornLeft: boolean): void;
    static resetContainer(container: Form): void;
    static resizeHeadpartsArray(npc: ActorBase, newSize: number): void;
    static resizeTintsArray(newSize: number): void;
    static setFormIdUnsafe(Form: Form, newId: number): void;
    static setNpcHairColor(npc: ActorBase, hairColor: number): void;
    static setNpcRace(npc: ActorBase, race: Race): void;
    static setNpcSex(npc: ActorBase, sex: number): void;
    static setNpcSkinColor(npc: ActorBase, skinColor: number): void;
    static setWeaponDrawnMode(actor: Actor, mode: number): void;
    static updateEquipment(actor: Actor, item: Form, leftHand: boolean): void;
}

// Based on TalkingActivator.pex
export declare class TalkingActivator extends Activator {
    static from(form: Form): TalkingActivator;
}

// Based on TextureSet.pex
export declare class TextureSet extends Form {
    static from(form: Form): TextureSet;
    getNthTexturePath(n: number): string;
    getNumTexturePaths(): number;
    setNthTexturePath(n: number, texturePath: string): void;
}

// Based on Topic.pex
export declare class Topic extends Form {
    static from(form: Form): Topic;
    add(): void;
}

// Based on TopicInfo.pex
export declare class TopicInfo extends Form {
    static from(form: Form): TopicInfo;
    getOwningQuest(): Quest;
}

// Based on TreeObject.pex
export declare class TreeObject extends Form {
    static from(form: Form): TreeObject;
    getHarvestSound(): SoundDescriptor;
    getIngredient(): Form;
    setHarvestSound(akSoundDescriptor: SoundDescriptor): void;
    setIngredient(akIngredient: Form): void;
}

// Based on Ui.pex
export declare class Ui {
    static from(form: Form): Ui;
    static closeCustomMenu(): void;
    static getBool(menuName: string, target: string): boolean;
    static getFloat(menuName: string, target: string): number;
    static getInt(menuName: string, target: string): number;
    static getString(menuName: string, target: string): string;
    static invokeBool(menuName: string, target: string, arg: boolean): void;
    static invokeBoolA(menuName: string, target: string, args: boolean[]): void;
    static invokeFloat(menuName: string, target: string, arg: number): void;
    static invokeFloatA(menuName: string, target: string, args: number[]): void;
    static invokeForm(menuName: string, target: string, arg: Form): void;
    static invokeInt(menuName: string, target: string, arg: number): void;
    static invokeIntA(menuName: string, target: string, args: number[]): void;
    static invokeString(menuName: string, target: string, arg: string): void;
    static invokeStringA(menuName: string, target: string, args: string[]): void;
    static isMenuOpen(menuName: string): boolean;
    static isTextInputEnabled(): boolean;
    static openCustomMenu(swfPath: string, flags: number): void;
    static setBool(menuName: string, target: string, value: boolean): void;
    static setFloat(menuName: string, target: string, value: number): void;
    static setInt(menuName: string, target: string, value: number): void;
    static setString(menuName: string, target: string, value: string): void;
}

// Based on VisualEffect.pex
export declare class VisualEffect extends Form {
    static from(form: Form): VisualEffect;
    play(param1: ObjectReference, param2: number, param3: ObjectReference): void;
    stop(param1: ObjectReference): void;
}

// Based on VoiceType.pex
export declare class VoiceType extends Form {
    static from(form: Form): VoiceType;
}

// Based on Weapon.pex
export declare class Weapon extends Form {
    static from(form: Form): Weapon;
    fire(akSource: ObjectReference, akAmmo: Ammo): void;
    getBaseDamage(): number;
    getCritDamage(): number;
    getCritEffect(): Spell;
    getCritEffectOnDeath(): boolean;
    getCritMultiplier(): number;
    getEnchantment(): Enchantment;
    getEnchantmentValue(): number;
    getEquipType(): EquipSlot;
    getEquippedModel(): Static;
    getIconPath(): string;
    getMaxRange(): number;
    getMessageIconPath(): string;
    getMinRange(): number;
    getModelPath(): string;
    getReach(): number;
    getResist(): string;
    getSkill(): string;
    getSpeed(): number;
    getStagger(): number;
    getTemplate(): Weapon;
    getWeaponType(): number;
    setBaseDamage(damage: number): void;
    setCritDamage(damage: number): void;
    setCritEffect(ce: Spell): void;
    setCritEffectOnDeath(ceod: boolean): void;
    setCritMultiplier(crit: number): void;
    setEnchantment(e: Enchantment): void;
    setEnchantmentValue(value: number): void;
    setEquipType(type: EquipSlot): void;
    setEquippedModel(model: Static): void;
    setIconPath(path: string): void;
    setMaxRange(maxRange: number): void;
    setMessageIconPath(path: string): void;
    setMinRange(minRange: number): void;
    setModelPath(path: string): void;
    setReach(reach: number): void;
    setResist(resist: string): void;
    setSkill(skill: string): void;
    setSpeed(speed: number): void;
    setStagger(stagger: number): void;
    setWeaponType(type: number): void;
}

// Based on Weather.pex
export declare class Weather extends Form {
    static from(form: Form): Weather;
    forceActive(abOverride: boolean): void;
    getClassification(): number;
    getFogDistance(day: boolean, type: number): number;
    getSunDamage(): number;
    getSunGlare(): number;
    getWindDirection(): number;
    getWindDirectionRange(): number;
    setActive(abOverride: boolean, abAccelerate: boolean): void;
    static findWeather(auiType: number): Weather;
    static getCurrentWeather(): Weather;
    static getCurrentWeatherTransition(): number;
    static getOutgoingWeather(): Weather;
    static getSkyMode(): number;
    static releaseOverride(): void;
}

// Based on WordOfPower.pex
export declare class WordOfPower extends Form {
    static from(form: Form): WordOfPower;
}

// Based on WorldSpace.pex
export declare class WorldSpace extends Form {
    static from(form: Form): WorldSpace;
}

// Based on Utility.pex
export declare class Utility {
    static from(form: Form): Utility;
    static captureFrameRate(numFrames: number): string;
    static createAliasArray(size: number, fill: Alias): object[];
    static createBoolArray(size: number, fill: boolean): boolean[];
    static createFloatArray(size: number, fill: number): number[];
    static createFormArray(size: number, fill: Form): object[];
    static createIntArray(size: number, fill: number): number[];
    static createStringArray(size: number, fill: string): string[];
    static endFrameRateCapture(): void;
    static gameTimeToString(afGameTime: number): Promise<string>;
    static getAverageFrameRate(): number;
    static getBudgetCount(): number;
    static getBudgetName(aiBudgetNumber: number): string;
    static getCurrentBudget(aiBudgetNumber: number): number;
    static getCurrentGameTime(): number;
    static getCurrentMemory(): number;
    static getCurrentRealTime(): number;
    static getINIBool(ini: string): boolean;
    static getINIFloat(ini: string): number;
    static getINIInt(ini: string): number;
    static getINIString(ini: string): string;
    static getMaxFrameRate(): number;
    static getMinFrameRate(): number;
    static isInMenuMode(): boolean;
    static overBudget(aiBudgetNumber: number): boolean;
    static randomFloat(afMin: number, afMax: number): number;
    static randomInt(aiMin: number, aiMax: number): number;
    static resizeAliasArray(source: object[], size: number, fill: Alias): object[];
    static resizeBoolArray(source: boolean[], size: number, fill: boolean): boolean[];
    static resizeFloatArray(source: number[], size: number, fill: number): number[];
    static resizeFormArray(source: object[], size: number, fill: Form): object[];
    static resizeIntArray(source: number[], size: number, fill: number): number[];
    static resizeStringArray(source: string[], size: number, fill: string): string[];
    static setINIBool(ini: string, value: boolean): void;
    static setINIFloat(ini: string, value: number): void;
    static setINIInt(ini: string, value: number): void;
    static setINIString(ini: string, value: string): void;
    static startFrameRateCapture(): void;
    static wait(afSeconds: number): Promise<void>;
    static waitGameTime(afHours: number): Promise<void>;
    static waitMenuMode(afSeconds: number): Promise<void>;
}
