/// <reference types="node" />
import { IModLoaderAPI } from "modloader64_api/IModLoaderAPI";
import { IMessageContext, IMessageEntry, MessageBoxPositions, MessageBoxTypes, IOOTCore, IMessageOcarinaInfo, IFontContext } from "../../API/OoT/OOTAPI";
export declare class FontContext implements IFontContext {
    ModLoader: IModLoaderAPI;
    Ptr: number;
    constructor(ModLoader: IModLoaderAPI, _Ptr: number);
    get MessageOffsetPtr(): number;
    get MessageLengthPtr(): number;
    get FontTextureBuffer(): Buffer;
    get IconBuffer(): Buffer;
    get FontBuffer(): Buffer;
    get MessageBufferPtr(): number;
    get MessageBuffer(): Buffer;
    set MessageOffsetPtr(_p: number);
    set MessageLengthPtr(_p: number);
    set FontTextureBuffer(_p: Buffer);
    set IconBuffer(_p: Buffer);
    set FontBuffer(_p: Buffer);
    set MessageBuffer(_p: Buffer);
}
export declare class MessageOcarinaInfo implements IMessageOcarinaInfo {
    ModLoader: IModLoaderAPI;
    Ptr: number;
    constructor(ModLoader: IModLoaderAPI, _Ptr: number);
    get Button(): number;
    get Status(): number;
    get Location(): number;
    set Button(_p: number);
    set Status(_p: number);
    set Location(_p: number);
}
declare abstract class MessageBoxFunctions {
    MessageTablePtr: number;
    Core: IOOTCore;
    ModLoader: IModLoaderAPI;
    constructor(Core: IOOTCore, ModLoader: IModLoaderAPI);
    Message_GetState(msgCtx: IMessageContext): number;
    Message_GetTableEntry(MessageID: number): number;
    Message_ModifyTableEntry(CustomMessage: MessageEntry): void;
    Message_Spawn(MessageCtx: IMessageContext, Message: MessageEntry): void;
}
export default class MessageContext extends MessageBoxFunctions implements IMessageContext {
    Ptr: number;
    constructor(Core: IOOTCore, ModLoader: IModLoaderAPI, _Ptr: number);
    get Font(): FontContext;
    get MessageBoxSegmentPtr(): number;
    get TextureSegmentPtr(): number;
    get OcarinaInfoPtr(): number;
    get OcarinaInfo(): MessageOcarinaInfo;
    get MessageID(): number;
    get SelectedMessageID(): number;
    get MessageBoxProperties(): number;
    get MessageBoxType(): MessageBoxTypes;
    get MessageBoxPosition(): MessageBoxPositions;
    get MessageDataPtr(): number;
    get MessageMode(): number;
    get MessageBufferRead(): Buffer;
    get ReadIndex(): number;
    get LoadIndex(): number;
    get LoadEndIndex(): number;
    get ReadEndIndex(): number;
    get FastForwardMessageTimer(): number;
    get CharacterXPosition(): number;
    get CharacterYPosition(): number;
    get CharacterColor(): Buffer;
    get SelectionMode(): number;
    get MessageChoiceIndex(): number;
    get ItemDisplayFlag(): number;
    get StateTimer(): number;
    get MessageSpeed(): number;
    get MessageSpeedOriginal(): number;
    get OcarinaLastPlayedSong(): number;
    get OcarinaMode(): number;
    get OcarinaAction(): number;
    get OcarinaCheckIndex(): number;
    get OcarinaSunSongFlag(): number;
    get MessageBoxNumber(): number;
    get MessageBoxPrimitiveColorIndex(): number;
    get MessageBoxShadowColor(): number;
    get MessageBoxShift(): number;
    get MessageBoxAnimation(): number;
    get MessageBoxType2(): MessageBoxTypes;
    get MessageBoxColor(): Buffer;
    get MessageBoxCurrentAlpha(): number;
    get TalkingActorPtr(): number;
    get DisableWarpSongsBool(): number;
    get SunSongChoice(): number;
    get LastOcarinaNoteIndex(): number;
    set MessageBoxSegmentPtr(_p: number);
    set TextureSegmentPtr(_p: number);
    set OcarinaInfoPtr(_p: number);
    set MessageID(_p: number);
    set SelectedMessageID(_p: number);
    set MessageBoxProperties(_p: number);
    set MessageBoxType(_p: MessageBoxTypes);
    set MessageBoxPosition(_p: MessageBoxPositions);
    set MessageDataPtr(_p: number);
    set MessageMode(_p: number);
    set MessageBufferRead(_p: Buffer);
    set ReadIndex(_p: number);
    set LoadIndex(_p: number);
    set LoadEndIndex(_p: number);
    set ReadEndIndex(_p: number);
    set FastForwardMessageTimer(_p: number);
    set CharacterXPosition(_p: number);
    set CharacterYPosition(_p: number);
    set CharacterColor(_p: Buffer);
    set SelectionMode(_p: number);
    set MessageChoiceIndex(_p: number);
    set ItemDisplayFlag(_p: number);
    set StateTimer(_p: number);
    set MessageSpeed(_p: number);
    set MessageSpeedOriginal(_p: number);
    set OcarinaLastPlayedSong(_p: number);
    set OcarinaMode(_p: number);
    set OcarinaAction(_p: number);
    set OcarinaCheckIndex(_p: number);
    set OcarinaSunSongFlag(_p: number);
    set MessageBoxNumber(_p: number);
    set MessageBoxPrimitiveColorIndex(_p: number);
    set MessageBoxShadowColor(_p: number);
    set MessageBoxShift(_p: number);
    set MessageBoxAnimation(_p: number);
    set MessageBoxType2(_p: MessageBoxTypes);
    set MessageBoxColor(_p: Buffer);
    set MessageBoxCurrentAlpha(_p: number);
    set TalkingActorPtr(_p: number);
    set DisableWarpSongsBool(_p: number);
    set SunSongChoice(_p: number);
    set LastOcarinaNoteIndex(_p: number);
}
export declare class MessageEntry implements IMessageEntry {
    MessageID: number;
    MessageBoxType: MessageBoxTypes;
    MessageBoxPosition: MessageBoxPositions;
    MessageString: string;
    ChoiceCallback?: (choiceIndex: number) => void;
    constructor(id: number, type: MessageBoxTypes, pos: MessageBoxPositions, msg: string, callback?: (choiceIndex: number) => void);
    ChoiceFunction(choiceIndex: number): void;
}
export {};
//# sourceMappingURL=MessageContext.d.ts.map