---@meta --- The current player. ---@alias PlayerUnitId "player" local PlayerUnitId = "player" --- The current player's focus target as selected by the /focus command. ---@alias FocusUnitId "focus" local FocusUnitId = "focus" --- The unit which the mouse is currently (or was most recently) hovering over. ---@alias MouseoverUnitId "mouseover" local MouseoverUnitId = "mouseover" --- A valid unit token that always refers to no unit. UnitName will return "Unknown, nil" for this UnitID. ---@alias NoneUnitId "none" local NoneUnitId = "none" --- The current player's pet. ---@alias PetUnitId "pet" local PetUnitId = "pet" --- The currently targeted unit. May be overridden in macros by unit specified as a value of respective Secure Button attribute. ---@alias TargetUnitId "target" local TargetUnitId = "target" --- The current player's vehicle. ---@alias VehicleUnitId "vehicle" local VehicleUnitId = "vehicle" --- The NPC with which the player is currently interacting. You must be interacting with the NPC for this to work (e.g. the quest, flight path, merchant, gossip, or bank frame is open). ---@alias NpcUnitId "npc" local NpcUnitId = "npc" --- The quest giver NPC with which the player is currently interacting. In most cases this will be identical to the "npc" unit. ---@alias QuestNpcUnitId "questnpc" local QuestNpcUnitId = "questnpc" local PartyBaseUnitId = "party" local PartyPetBaseUnitId = PartyBaseUnitId .. PetUnitId local RaidBaseUnitId = "raid" local RaidPetBaseUnitId = RaidBaseUnitId .. PetUnitId local ArenaBaseUnitId = "arena" local BossBaseUnitId = "boss" local NameplateBaseUnitId = "nameplate" local SpectatedBaseUnitId = "spectated" local SpectatedTeamAId = "a" local SpectatedTeamABaseUnitId = SpectatedBaseUnitId .. SpectatedTeamAId local SpectatedTeamAPetBaseUnitId = SpectatedBaseUnitId .. PetUnitId .. SpectatedTeamAId local SpectatedTeamBId = "b" local SpectatedTeamBBaseUnitId = SpectatedBaseUnitId .. SpectatedTeamBId local SpectatedTeamBPetBaseUnitId = SpectatedBaseUnitId .. PetUnitId .. SpectatedTeamBId --- The raid member with raidIndex N (1,2,3,...,40) `raid1` - `raid40`. ---@enum (key) RaidUnitIds local RaidUnitIds = { raid1 = RaidBaseUnitId .. "1", raid2 = RaidBaseUnitId .. "2", raid3 = RaidBaseUnitId .. "3", raid4 = RaidBaseUnitId .. "4", raid5 = RaidBaseUnitId .. "5", raid6 = RaidBaseUnitId .. "6", raid7 = RaidBaseUnitId .. "7", raid8 = RaidBaseUnitId .. "8", raid9 = RaidBaseUnitId .. "9", raid10 = RaidBaseUnitId .. "10", raid11 = RaidBaseUnitId .. "11", raid12 = RaidBaseUnitId .. "12", raid13 = RaidBaseUnitId .. "13", raid14 = RaidBaseUnitId .. "14", raid15 = RaidBaseUnitId .. "15", raid16 = RaidBaseUnitId .. "16", raid17 = RaidBaseUnitId .. "17", raid18 = RaidBaseUnitId .. "18", raid19 = RaidBaseUnitId .. "19", raid20 = RaidBaseUnitId .. "20", raid21 = RaidBaseUnitId .. "21", raid22 = RaidBaseUnitId .. "22", raid23 = RaidBaseUnitId .. "23", raid24 = RaidBaseUnitId .. "24", raid25 = RaidBaseUnitId .. "25", raid26 = RaidBaseUnitId .. "26", raid27 = RaidBaseUnitId .. "27", raid28 = RaidBaseUnitId .. "28", raid29 = RaidBaseUnitId .. "29", raid30 = RaidBaseUnitId .. "30", raid31 = RaidBaseUnitId .. "31", raid32 = RaidBaseUnitId .. "32", raid33 = RaidBaseUnitId .. "33", raid34 = RaidBaseUnitId .. "34", raid35 = RaidBaseUnitId .. "35", raid36 = RaidBaseUnitId .. "36", raid37 = RaidBaseUnitId .. "37", raid38 = RaidBaseUnitId .. "38", raid39 = RaidBaseUnitId .. "39", raid40 = RaidBaseUnitId .. "40", } --- Opposing arena member with index N (1,2,3,4 or 5) `arena1` - `arena5`. ---@enum (key) ArenaUnitIds local ArenaUnitIds = { arena1 = ArenaBaseUnitId .. "1", arena2 = ArenaBaseUnitId .. "2", arena3 = ArenaBaseUnitId .. "3", arena4 = ArenaBaseUnitId .. "4", arena5 = ArenaBaseUnitId .. "5", } --- The active bosses of the current encounter if available N (1,2,3...,8) `boss1` - `boss8`. ---@enum (key) BossUnitIds local BossUnitIds = { boss1 = BossBaseUnitId .. "1", boss2 = BossBaseUnitId .. "2", boss3 = BossBaseUnitId .. "3", boss4 = BossBaseUnitId .. "4", boss5 = BossBaseUnitId .. "5", boss6 = BossBaseUnitId .. "6", boss7 = BossBaseUnitId .. "7", boss8 = BossBaseUnitId .. "8", } --- The Nth party member excluding the player (1,2,3 or 4) `party1` - `party4`. ---@enum (key) PartyUnitIds local PartyUnitIds = { party1 = PartyBaseUnitId .. "1", party2 = PartyBaseUnitId .. "2", party3 = PartyBaseUnitId .. "3", party4 = PartyBaseUnitId .. "4", } --- The pet of the Nth party member (N is 1,2,3, or 4) `partypet1` - `partypet4`. ---@enum (key) PartyPetUnitIds local PartyPetUnitIds = { partypet1 = PartyPetBaseUnitId .. "1", partypet2 = PartyPetBaseUnitId .. "2", partypet3 = PartyPetBaseUnitId .. "3", partypet4 = PartyPetBaseUnitId .. "4", } --- The pet of the raid member with raidIndex N (1,2,3,...,40) `raidpet1` - `raidpet40`. ---@enum (key) RaidPetUnitIds local RaidPetUnitIds = { raidpet1 = RaidPetBaseUnitId .. "1", raidpet2 = RaidPetBaseUnitId .. "2", raidpet3 = RaidPetBaseUnitId .. "3", raidpet4 = RaidPetBaseUnitId .. "4", raidpet5 = RaidPetBaseUnitId .. "5", raidpet6 = RaidPetBaseUnitId .. "6", raidpet7 = RaidPetBaseUnitId .. "7", raidpet8 = RaidPetBaseUnitId .. "8", raidpet9 = RaidPetBaseUnitId .. "9", raidpet10 = RaidPetBaseUnitId .. "10", raidpet11 = RaidPetBaseUnitId .. "11", raidpet12 = RaidPetBaseUnitId .. "12", raidpet13 = RaidPetBaseUnitId .. "13", raidpet14 = RaidPetBaseUnitId .. "14", raidpet15 = RaidPetBaseUnitId .. "15", raidpet16 = RaidPetBaseUnitId .. "16", raidpet17 = RaidPetBaseUnitId .. "17", raidpet18 = RaidPetBaseUnitId .. "18", raidpet19 = RaidPetBaseUnitId .. "19", raidpet20 = RaidPetBaseUnitId .. "20", raidpet21 = RaidPetBaseUnitId .. "21", raidpet22 = RaidPetBaseUnitId .. "22", raidpet23 = RaidPetBaseUnitId .. "23", raidpet24 = RaidPetBaseUnitId .. "24", raidpet25 = RaidPetBaseUnitId .. "25", raidpet26 = RaidPetBaseUnitId .. "26", raidpet27 = RaidPetBaseUnitId .. "27", raidpet28 = RaidPetBaseUnitId .. "28", raidpet29 = RaidPetBaseUnitId .. "29", raidpet30 = RaidPetBaseUnitId .. "30", raidpet31 = RaidPetBaseUnitId .. "31", raidpet32 = RaidPetBaseUnitId .. "32", raidpet33 = RaidPetBaseUnitId .. "33", raidpet34 = RaidPetBaseUnitId .. "34", raidpet35 = RaidPetBaseUnitId .. "35", raidpet36 = RaidPetBaseUnitId .. "36", raidpet37 = RaidPetBaseUnitId .. "37", raidpet38 = RaidPetBaseUnitId .. "38", raidpet39 = RaidPetBaseUnitId .. "39", raidpet40 = RaidPetBaseUnitId .. "40", } --- The Nth nameplate unit (1,2,3,...,40) `nameplate1` - `nameplate40`. ---@enum (key) NameplateUnitIds local NameplateUnitIds = { nameplate1 = NameplateBaseUnitId .. "1", nameplate2 = NameplateBaseUnitId .. "2", nameplate3 = NameplateBaseUnitId .. "3", nameplate4 = NameplateBaseUnitId .. "4", nameplate5 = NameplateBaseUnitId .. "5", nameplate6 = NameplateBaseUnitId .. "6", nameplate7 = NameplateBaseUnitId .. "7", nameplate8 = NameplateBaseUnitId .. "8", nameplate9 = NameplateBaseUnitId .. "9", nameplate10 = NameplateBaseUnitId .. "10", nameplate11 = NameplateBaseUnitId .. "11", nameplate12 = NameplateBaseUnitId .. "12", nameplate13 = NameplateBaseUnitId .. "13", nameplate14 = NameplateBaseUnitId .. "14", nameplate15 = NameplateBaseUnitId .. "15", nameplate16 = NameplateBaseUnitId .. "16", nameplate17 = NameplateBaseUnitId .. "17", nameplate18 = NameplateBaseUnitId .. "18", nameplate19 = NameplateBaseUnitId .. "19", nameplate20 = NameplateBaseUnitId .. "20", nameplate21 = NameplateBaseUnitId .. "21", nameplate22 = NameplateBaseUnitId .. "22", nameplate23 = NameplateBaseUnitId .. "23", nameplate24 = NameplateBaseUnitId .. "24", nameplate25 = NameplateBaseUnitId .. "25", nameplate26 = NameplateBaseUnitId .. "26", nameplate27 = NameplateBaseUnitId .. "27", nameplate28 = NameplateBaseUnitId .. "28", nameplate29 = NameplateBaseUnitId .. "29", nameplate30 = NameplateBaseUnitId .. "30", nameplate31 = NameplateBaseUnitId .. "31", nameplate32 = NameplateBaseUnitId .. "32", nameplate33 = NameplateBaseUnitId .. "33", nameplate34 = NameplateBaseUnitId .. "34", nameplate35 = NameplateBaseUnitId .. "35", nameplate36 = NameplateBaseUnitId .. "36", nameplate37 = NameplateBaseUnitId .. "37", nameplate38 = NameplateBaseUnitId .. "38", nameplate39 = NameplateBaseUnitId .. "39", nameplate40 = NameplateBaseUnitId .. "40", } -- The Nth spectated unit (1,2,3,...,15) for Team "a". Only present in commentator mode. `spectateda1` - `spectateda15` ---@enum (key) SpectatedTeamAUnitIds local SpectatedTeamAUnitIds = { spectateda1 = SpectatedTeamABaseUnitId .. "1", spectateda2 = SpectatedTeamABaseUnitId .. "2", spectateda3 = SpectatedTeamABaseUnitId .. "3", spectateda4 = SpectatedTeamABaseUnitId .. "4", spectateda5 = SpectatedTeamABaseUnitId .. "5", spectateda6 = SpectatedTeamABaseUnitId .. "6", spectateda7 = SpectatedTeamABaseUnitId .. "7", spectateda8 = SpectatedTeamABaseUnitId .. "8", spectateda9 = SpectatedTeamABaseUnitId .. "9", spectateda10 = SpectatedTeamABaseUnitId .. "10", spectateda11 = SpectatedTeamABaseUnitId .. "11", spectateda12 = SpectatedTeamABaseUnitId .. "12", spectateda13 = SpectatedTeamABaseUnitId .. "13", spectateda14 = SpectatedTeamABaseUnitId .. "14", spectateda15 = SpectatedTeamABaseUnitId .. "15", } -- The pet of the Nth spectated unit (1,2,3,...,15) for Team "a". Only present in commentator mode. `spectatedpeta1` - `spectatedpeta15` ---@enum (key) SpectatedTeamAPetUnitIds local SpectatedTeamAPetUnitIds = { spectatedpeta1 = SpectatedTeamAPetBaseUnitId .. "1", spectatedpeta2 = SpectatedTeamAPetBaseUnitId .. "2", spectatedpeta3 = SpectatedTeamAPetBaseUnitId .. "3", spectatedpeta4 = SpectatedTeamAPetBaseUnitId .. "4", spectatedpeta5 = SpectatedTeamAPetBaseUnitId .. "5", spectatedpeta6 = SpectatedTeamAPetBaseUnitId .. "6", spectatedpeta7 = SpectatedTeamAPetBaseUnitId .. "7", spectatedpeta8 = SpectatedTeamAPetBaseUnitId .. "8", spectatedpeta9 = SpectatedTeamAPetBaseUnitId .. "9", spectatedpeta10 = SpectatedTeamAPetBaseUnitId .. "10", spectatedpeta11 = SpectatedTeamAPetBaseUnitId .. "11", spectatedpeta12 = SpectatedTeamAPetBaseUnitId .. "12", spectatedpeta13 = SpectatedTeamAPetBaseUnitId .. "13", spectatedpeta14 = SpectatedTeamAPetBaseUnitId .. "14", spectatedpeta15 = SpectatedTeamAPetBaseUnitId .. "15", } -- The Nth spectated unit (1,2,3,...,15) for Team "b". Only present in commentator mode. `spectatedb1` - `spectatedb15` ---@enum (key) SpectatedTeamBUnitIds local SpectatedTeamBUnitIds = { spectatedb1 = SpectatedTeamBBaseUnitId .. "1", spectatedb2 = SpectatedTeamBBaseUnitId .. "2", spectatedb3 = SpectatedTeamBBaseUnitId .. "3", spectatedb4 = SpectatedTeamBBaseUnitId .. "4", spectatedb5 = SpectatedTeamBBaseUnitId .. "5", spectatedb6 = SpectatedTeamBBaseUnitId .. "6", spectatedb7 = SpectatedTeamBBaseUnitId .. "7", spectatedb8 = SpectatedTeamBBaseUnitId .. "8", spectatedb9 = SpectatedTeamBBaseUnitId .. "9", spectatedb10 = SpectatedTeamBBaseUnitId .. "10", spectatedb11 = SpectatedTeamBBaseUnitId .. "11", spectatedb12 = SpectatedTeamBBaseUnitId .. "12", spectatedb13 = SpectatedTeamBBaseUnitId .. "13", spectatedb14 = SpectatedTeamBBaseUnitId .. "14", spectatedb15 = SpectatedTeamBBaseUnitId .. "15", } -- The pet of the Nth spectated unit (1,2,3,...,15) for Team "B". Only present in commentator mode. `spectatedpetb1` - `spectatedpetb15` ---@enum (key) SpectatedTeamBPetUnitIds local SpectatedTeamBPetUnitIds = { spectatedpetb1 = SpectatedTeamBPetBaseUnitId .. "1", spectatedpetb2 = SpectatedTeamBPetBaseUnitId .. "2", spectatedpetb3 = SpectatedTeamBPetBaseUnitId .. "3", spectatedpetb4 = SpectatedTeamBPetBaseUnitId .. "4", spectatedpetb5 = SpectatedTeamBPetBaseUnitId .. "5", spectatedpetb6 = SpectatedTeamBPetBaseUnitId .. "6", spectatedpetb7 = SpectatedTeamBPetBaseUnitId .. "7", spectatedpetb8 = SpectatedTeamBPetBaseUnitId .. "8", spectatedpetb9 = SpectatedTeamBPetBaseUnitId .. "9", spectatedpetb10 = SpectatedTeamBPetBaseUnitId .. "10", spectatedpetb11 = SpectatedTeamBPetBaseUnitId .. "11", spectatedpetb12 = SpectatedTeamBPetBaseUnitId .. "12", spectatedpetb13 = SpectatedTeamBPetBaseUnitId .. "13", spectatedpetb14 = SpectatedTeamBPetBaseUnitId .. "14", spectatedpetb15 = SpectatedTeamBPetBaseUnitId .. "15", } ---@alias UnitIds PlayerUnitId | FocusUnitId | MouseoverUnitId | NoneUnitId | PetUnitId | TargetUnitId | VehicleUnitId | NpcUnitId | QuestNpcUnitId | RaidUnitIds | ArenaUnitIds | BossUnitIds | PartyUnitIds | PartyPetUnitIds | RaidPetUnitIds | NameplateUnitIds | SpectatedTeamAUnitIds | SpectatedTeamAPetUnitIds | SpectatedTeamBUnitIds | SpectatedTeamBPetUnitIds --#region TinkrTypes ---@class WowGameObject ---@field unit fun(): UnitIds ---@alias TinkrObjectReference WowGameObject | UnitId ---@alias spellId integer ---@enum PathTypes local PathTypes = { PATHFIND_BLANK = 0x00, -- path not built yet PATHFIND_NORMAL = 0x01, -- normal path PATHFIND_SHORTCUT = 0x02, -- travel through obstacles, terrain, air, etc (old behavior) PATHFIND_INCOMPLETE = 0x04, -- we have partial path to follow - getting closer to target PATHFIND_NOPATH = 0x08, -- no valid path at all or error in generating one PATHFIND_NOT_USING_PATH = 0x10, -- used when we are either flying/swiming or on map w/o mmaps PATHFIND_SHORT = 0x20, -- path is longer or equal to its limited path length } ---@enum TObjectTypes local TObjectTypes = { Object = 0, Item = 1, Container = 2, AzeriteEmpoweredItem = 3, AzeriteItem = 4, Unit = 5, Player = 6, ActivePlayer = 7, GameObject = 8, DynamicObject = 9, Corpse = 10, AreaTrigger = 11, SceneObject = 12, Conversation = 13, AiGroup = 14, Scenario = 15, Loot = 16, Invalid = 17, } ---@enum eGameObjType local eGameObjType = { Door = 0, Button = 1, QuestGiver = 2, Chest = 3, Binder = 4, Generic = 5, Trap = 6, Chair = 7, SpellFocus = 8, Text = 9, Goober = 0xa, Transport = 0xb, AreaDamage = 0xc, Camera = 0xd, WorldObj = 0xe, -- Compare with Mapobject MapObjTransport = 0xf, DuelArbiter = 0x10, FishingNode = 0x11, Ritual = 0x12, Mailbox = 0x13, AuctionHouse = 0x14, -- Compare to DONOTUSE1? SpellCaster = 0x16, MeetingStone = 0x17, Unkown18 = 0x18, -- Compare to FlagStand FishingPool = 0x19, -- Compare to FishingHole FORCEDWORD = 0xFFFFFFFF, } ---@class Missle ---@field cx number # current x ---@field cy number # current y ---@field cz number # current z ---@field hx number # hit x ---@field hy number # hit y ---@field hz number # hit z ---@field ix number # init x ---@field iy number # init y ---@field iz number # init z ---@field mx? number # model x ---@field my? number # model y ---@field mz? number # model z ---@enum TinkrMovementFlags local TinkrMovementFlags = { NONE = 0x00000000, FORWARD = 0x00000001, BACKWARD = 0x00000002, STRAFELEFT = 0x00000004, STRAFERIGHT = 0x00000008, TURNLEFT = 0x00000010, TURNRIGHT = 0x00000020, PITCHUP = 0x00000040, PITCHDOWN = 0x00000080, WALKMODE = 0x00000100, ONTRANSPORT = 0x00000200, LEVITATING = 0x00000400, ROOT = 0x00000800, FALLING = 0x00001000, FALLINGFAR = 0x00002000, PENDINGSTOP = 0x00004000, PENDINGSTRAFESTOP = 0x00008000, PENDINGFORWARD = 0x00010000, PENDINGBACKWARD = 0x00020000, PENDINGSTRAFELEFT = 0x00040000, PENDINGSTRAFERIGHT = 0x00080000, PENDINGROOT = 0x00100000, SWIMMING = 0x00200000, ASCENDING = 0x00400000, DESCENDING = 0x00800000, CAN_FLY = 0x01000000, FLYING = 0x02000000, SPLINEELEVATION = 0x04000000, SPLINEENABLED = 0x08000000, WATERWALKING = 0x10000000, SAFEFALL = 0x20000000, HOVER = 0x40000000, } ---@enum SkinType local SkinType = { HERBALISM = 0x100, MINING = 0x200, ENGINEERING = 0x8000, } --@alias ObjTypes | ObjectTypes.Object | ObjectTypes.Item | ObjectTypes.Container | ObjectTypes.AzeriteEmpoweredItem | ObjectTypes.AzeriteItem | ObjectTypes.Unit | ObjectTypes.Player | ObjectTypes.ActivePlayer | ObjectTypes.GameObject | ObjectTypes.DynamicObject | ObjectTypes.Corpse | ObjectTypes.AreaTrigger | ObjectTypes.SceneObject | ObjectTypes.Conversation | ObjectTypes.AiGroup | ObjectTypes.Scenario | ObjectTypes.Loot | ObjectTypes.Invalid ---@alias Position {x: number, y: number, z: number} ---@alias PositionArray Position[] ---@alias HttpGetRequestParams { method: 'GET', url: string, headers?: string[], callback: fun(status: number, res: string) } ---@alias HttpPostRequestParams { method: 'POST', url: string, fields: { [string]: any }, body?: string, files?: { [string]: string }, headers?: string[], callback: fun(status: number, res: string) } ---@enum TinkrCollisionFlags local TinkrCollisionFlags = { M2Collision = 0x1, M2Render = 0x2, WMOCollision = 0x10, WMORender = 0x20, Terrain = 0x100, WaterWalkableLiquid = 0x10000, Liquid = 0x20000, EntityCollision = 0x100000, } --#endregion TinkrTypes --#region Tinkr.Util --#region Tinkr.Util.Http ---@class Tinkr.Util.Http local TinkrUtilHttp = { ---Make a HTTP request ---@param self Tinkr.Util.Http ---@param parms HttpGetRequestParams | HttpPostRequestParams Request = function(self, parms) end, } --#endregion Tinkr.Util.Http --#region Tinkr.Util.Commands --#region Tinkr.Util.Commands.New.Register ---@class Tinkr.Util.Commands.New.Register local TinkrUtilCommandsNewRegister = { ---@param self Tinkr.Util.Commands.New.Register ---@param command string | string[], ---@param handler fun(...), ---@param help string, ---@param arguments? string[] Register = function(self, command, handler, help, arguments) end, } --#endregion Tinkr.Util.Commands.New.Register ---@class Tinkr.Util.Commands local TinkrUtilCommands = { ---Create a new command ---@param self Tinkr.Util.Commands ---@param prefix string ---@return Tinkr.Util.Commands.New.Register New = function(self, prefix) end, } --#endregion Tinkr.Util.Commands --#region Tinkr.Util.GUIBuilder --#region Tinkr.Util.GUIBuilder.Reusable ---@class Tinkr.Util.GUIBuilder.Base.Keyable ---@field key string ---@class Tinkr.Util.GUIBuilder.Base.Sizable ---@field width number ---@field height number ---@alias Tinkr.Util.GUIBuilderChildElement Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config | Tinkr.Util.GUIBuilder.Element.Tab.Config | Tinkr.Util.GUIBuilder.Element.Radio.Config | Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config | Tinkr.Util.GUIBuilder.Element.Image.Config | Tinkr.Util.GUIBuilder.Element.TreeBranch.Config | Tinkr.Util.GUIBuilder.Element.Slider.Config | Tinkr.Util.GUIBuilder.Element.Heading.Config | Tinkr.Util.GUIBuilder.Element.Padding.Config | Tinkr.Util.GUIBuilder.Element.Radio.Config | Tinkr.Util.GUIBuilder.Element.Spacer.Config | Tinkr.Util.GUIBuilder.Element.Dropdown.Config | Tinkr.Util.GUIBuilder.Element.EditBox.Config | Tinkr.Util.GUIBuilder.Element.Group.Config | Tinkr.Util.GUIBuilder.Element.TabGroup.Config | Tinkr.Util.GUIBuilder.Element.Window.Config | Tinkr.Util.GUIBuilder.Element.Text.Config | Tinkr.Util.GUIBuilder.Element.Columns.Config | Tinkr.Util.GUIBuilder.Element.Rows.Config | Tinkr.Util.GUIBuilder.Element.HTML.Config | Tinkr.Util.GUIBuilder.Element.ColorPicker.Config | Tinkr.Util.GUIBuilder.Element.TreeGroup.Config ---@class Tinkr.Util.GUIBuilder.Base.GroupElement.Options ---@field content Tinkr.Util.GUIBuilderChildElement[] --#endregion Tinkr.Util.GUIBuilder.Reusable --#region Tinkr.Util.GUIBuilder.Element.Button ---@class Tinkr.Util.GUIBuilder.Element.Button.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field text string ---@field disabled? boolean ---@field fullwidth boolean ---@class Tinkr.Util.GUIBuilder.Element.Button.Config : Tinkr.Util.GUIBuilder.Element.Button.Options ---@field type "Button" ---@class Tinkr.Util.GUIBuilder.Element.Button.Instance : Button ---@class Tinkr.Util.GUIBuilder.Element.Button.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Button.Config): Tinkr.Util.GUIBuilder.Element.Button.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Button --#region Tinkr.Util.GUIBuilder.Element.Window ---@class Tinkr.Util.GUIBuilder.Element.Window.Options : Tinkr.Util.GUIBuilder.Base.Keyable, Tinkr.Util.GUIBuilder.Base.Sizable, Tinkr.Util.GUIBuilder.Base.GroupElement.Options ---@field title string ---@class Tinkr.Util.GUIBuilder.Element.Window.Config : Tinkr.Util.GUIBuilder.Element.Window.Options ---@field type "Window" ---@class Tinkr.Util.GUIBuilder.Element.Window.Instance : AceGUIWindow, AceGUIWidget ---@field Release fun() ---@field Hide fun() ---@field Show fun() ---@field closebutton Tinkr.Util.GUIBuilder.Element.Button.Instance ---@field SetTitle fun(title: string) ---@field OnRelease fun() ---@field OnAcquire fun() ---@field SetStatusText fun(text: string) ---@field SetStatusTable fun(status: table) ---@field ApplyStatus fun() ---@field OnWidthSet fun(width: number) ---@field OnHeightSet fun(height: number) ---@field EnableResize fun(state: boolean) ---@class Tinkr.Util.GUIBuilder.Element.Window.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Window.Config): Tinkr.Util.GUIBuilder.Element.Window.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Window --#region Tinkr.Util.GUIBuilder.Element.Text ---@class Tinkr.Util.GUIBuilder.Element.Text.Options ---@field text string ---@field size? number ---@field color? string ---@field font? string ---@class Tinkr.Util.GUIBuilder.Element.Text.Config : Tinkr.Util.GUIBuilder.Element.Text.Options ---@field type "Text" ---@class Tinkr.Util.GUIBuilder.Element.Text.Instance : FontString ---@class Tinkr.Util.GUIBuilder.Element.Text.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Text.Config): Tinkr.Util.GUIBuilder.Element.Text.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Text --#region Tinkr.Util.GUIBuilder.Element.Tab ---@class Tinkr.Util.GUIBuilder.Element.Tab.Options : Tinkr.Util.GUIBuilder.Base.GroupElement.Options ---@field title string ---@class Tinkr.Util.GUIBuilder.Element.Tab.Config : Tinkr.Util.GUIBuilder.Element.Tab.Options ---@field type "Tab" ---@class Tinkr.Util.GUIBuilder.Element.Tab.Instance ---@class Tinkr.Util.GUIBuilder.Element.Tab.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Tab.Config): Tinkr.Util.GUIBuilder.Element.Tab.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Tab --#region Tinkr.Util.GUIBuilder.Element.TabGroup ---@class Tinkr.Util.GUIBuilder.Element.TabGroup.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field tabs Tinkr.Util.GUIBuilder.Element.Tab.Config[] ---@class Tinkr.Util.GUIBuilder.Element.TabGroup.Config : Tinkr.Util.GUIBuilder.Element.TabGroup.Options ---@field type "TabGroup" ---@class Tinkr.Util.GUIBuilder.Element.TabGroup.Instance ---@class Tinkr.Util.GUIBuilder.Element.Tab.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Tab.Config): Tinkr.Util.GUIBuilder.Element.Tab.Instance --#endregion Tinkr.Util.GUIBuilder.Element.TabGroup --#region Tinkr.Util.GUIBuilder.Element.Spacer ---@class Tinkr.Util.GUIBuilder.Element.Spacer.Options ---@field height? number ---@class Tinkr.Util.GUIBuilder.Element.Spacer.Config ---@field type "Spacer" ---@class Tinkr.Util.GUIBuilder.Element.Spacer.Instance ---@class Tinkr.Util.GUIBuilder.Element.Tab.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Tab.Config): Tinkr.Util.GUIBuilder.Element.Tab.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Spacer --#region Tinkr.Util.GUIBuilder.Element.Checkbox ---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field label string ---@field description? string ---@field tristate? boolean ---@field default? 'yes' | 'no' | 'half' ---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Config : Tinkr.Util.GUIBuilder.Element.Checkbox.Options ---@field type "Checkbox" ---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Instance ---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Checkbox.Config): Tinkr.Util.GUIBuilder.Element.Checkbox.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Checkbox --#region Tinkr.Util.GUIBuilder.Element.Radio ---@class Tinkr.Util.GUIBuilder.Element.Radio.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field stacked? boolean ---@field values string[] ---@class Tinkr.Util.GUIBuilder.Element.Radio.Config : Tinkr.Util.GUIBuilder.Element.Radio.Options ---@field type "Radio" ---@class Tinkr.Util.GUIBuilder.Element.Radio.Instance ---@class Tinkr.Util.GUIBuilder.Element.Radio.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Radio.Config): Tinkr.Util.GUIBuilder.Element.Radio.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Radio --#region Tinkr.Util.GUIBuilder.Element.Group ---@class Tinkr.Util.GUIBuilder.Element.Group.Options : Tinkr.Util.GUIBuilder.Base.GroupElement.Options ---@field title string ---@class Tinkr.Util.GUIBuilder.Element.Group.Config : Tinkr.Util.GUIBuilder.Element.Group.Options ---@field type "Group" ---@class Tinkr.Util.GUIBuilder.Element.Group.Instance ---@class Tinkr.Util.GUIBuilder.Element.Group.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Group.Config): Tinkr.Util.GUIBuilder.Element.Group.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Group --#region Tinkr.Util.GUIBuilder.Element.EditBox ---@class Tinkr.Util.GUIBuilder.Element.EditBox.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field label string ---@field description? string ---@field placeholder? string ---@field button? boolean ---@field multiline? boolean ---@field lines? number ---@class Tinkr.Util.GUIBuilder.Element.EditBox.Config : Tinkr.Util.GUIBuilder.Element.EditBox.Options ---@field type "EditBox" ---@class Tinkr.Util.GUIBuilder.Element.EditBox.Instance ---@class Tinkr.Util.GUIBuilder.Element.EditBox.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.EditBox.Config): Tinkr.Util.GUIBuilder.Element.EditBox.Instance --#endregion Tinkr.Util.GUIBuilder.Element.EditBox --#region Tinkr.Util.GUIBuilder.Element.Dropdown ---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field label string ---@field description? string ---@field default? string ---@field values string[] ---@field multi? boolean ---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Config : Tinkr.Util.GUIBuilder.Element.Dropdown.Options ---@field type "Dropdown" ---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Instance ---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Dropdown.Config): Tinkr.Util.GUIBuilder.Element.Dropdown.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Dropdown --#region Tinkr.Util.GUIBuilder.Element.Padding ---@class Tinkr.Util.GUIBuilder.Element.Padding.Options : Tinkr.Util.GUIBuilder.Base.Keyable, Tinkr.Util.GUIBuilder.Base.GroupElement.Options ---@field padding number ---@class Tinkr.Util.GUIBuilder.Element.Padding.Config : Tinkr.Util.GUIBuilder.Element.Padding.Options ---@field type "Padding" ---@class Tinkr.Util.GUIBuilder.Element.Padding.Instance ---@class Tinkr.Util.GUIBuilder.Element.Padding.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Padding.Config): Tinkr.Util.GUIBuilder.Element.Padding.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Padding --#region Tinkr.Util.GUIBuilder.Element.Rows ---@class Tinkr.Util.GUIBuilder.Element.Rows.Options ---@class Tinkr.Util.GUIBuilder.Element.Rows.Config : Tinkr.Util.GUIBuilder.Element.Rows.Options ---@field type "Rows" ---@class Tinkr.Util.GUIBuilder.Element.Rows.Instance ---@class Tinkr.Util.GUIBuilder.Element.Rows.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Rows.Config): Tinkr.Util.GUIBuilder.Element.Rows.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Rows --#region Tinkr.Util.GUIBuilder.Element.Columns ---@class Tinkr.Util.GUIBuilder.Element.Columns.Options ---@class Tinkr.Util.GUIBuilder.Element.Columns.Config : Tinkr.Util.GUIBuilder.Element.Columns.Options ---@field type "Columns" ---@class Tinkr.Util.GUIBuilder.Element.Columns.Instance ---@class Tinkr.Util.GUIBuilder.Element.Columns.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Columns.Config): Tinkr.Util.GUIBuilder.Element.Columns.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Columns --#region Tinkr.Util.GUIBuilder.Element.Image ---@class Tinkr.Util.GUIBuilder.Element.Image.Options : Tinkr.Util.GUIBuilder.Base.Sizable ---@field image string ---@field fit? boolean ---@class Tinkr.Util.GUIBuilder.Element.Image.Config : Tinkr.Util.GUIBuilder.Element.Image.Options ---@field type "Image" ---@class Tinkr.Util.GUIBuilder.Element.Image.Instance ---@class Tinkr.Util.GUIBuilder.Element.Image.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Image.Config): Tinkr.Util.GUIBuilder.Element.Image.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Image --#region Tinkr.Util.GUIBuilder.Element.TreeBranch ---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field title string ---@field icon number ---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Config : Tinkr.Util.GUIBuilder.Element.TreeBranch.Options ---@field type "TreeBranch" ---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Instance ---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.TreeBranch.Config): Tinkr.Util.GUIBuilder.Element.TreeBranch.Instance --#endregion Tinkr.Util.GUIBuilder.Element.TreeBranch --#region Tinkr.Util.GUIBuilder.Element.TreeGroup ---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field branches Tinkr.Util.GUIBuilder.Element.TreeBranch.Config[] ---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Config : Tinkr.Util.GUIBuilder.Element.TreeGroup.Options ---@field type "TreeGroup" ---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Instance ---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.TreeGroup.Config): Tinkr.Util.GUIBuilder.Element.TreeGroup.Instance --#endregion Tinkr.Util.GUIBuilder.Element.TreeGroup --#region Tinkr.Util.GUIBuilder.Element.Slider ---@class Tinkr.Util.GUIBuilder.Element.Slider.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field label string ---@field description? string ---@field min? number ---@field max? number ---@field step? number ---@field default? number ---@field percent? boolean ---@class Tinkr.Util.GUIBuilder.Element.Slider.Config : Tinkr.Util.GUIBuilder.Element.Slider.Options ---@field type "Slider" ---@class Tinkr.Util.GUIBuilder.Element.Slider.Instance ---@class Tinkr.Util.GUIBuilder.Element.Slider.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Slider.Config): Tinkr.Util.GUIBuilder.Element.Slider.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Slider --#region Tinkr.Util.GUIBuilder.Element.ColorPicker ---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Options : Tinkr.Util.GUIBuilder.Base.Keyable ---@field label string ---@field description? string ---@field alpha? boolean ---@field default? string ---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Config : Tinkr.Util.GUIBuilder.Element.ColorPicker.Options ---@field type "ColorPicker" ---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Instance ---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.ColorPicker.Config): Tinkr.Util.GUIBuilder.Element.ColorPicker.Instance --#endregion Tinkr.Util.GUIBuilder.Element.ColorPicker --#region Tinkr.Util.GUIBuilder.Element.SimpleGroup ---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Options ---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config : Tinkr.Util.GUIBuilder.Element.SimpleGroup.Options ---@field type "SimpleGroup" ---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Instance ---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config): Tinkr.Util.GUIBuilder.Element.SimpleGroup.Instance --#endregion Tinkr.Util.GUIBuilder.Element.SimpleGroup --#region Tinkr.Util.GUIBuilder.Element.Heading ---@class Tinkr.Util.GUIBuilder.Element.Heading.Options : string ---@class Tinkr.Util.GUIBuilder.Element.Heading.Config : Tinkr.Util.GUIBuilder.Element.Heading.Options ---@field text string ---@field type "Heading" ---@class Tinkr.Util.GUIBuilder.Element.Heading.Instance ---@class Tinkr.Util.GUIBuilder.Element.Heading.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Heading.Config): Tinkr.Util.GUIBuilder.Element.Heading.Instance --#endregion Tinkr.Util.GUIBuilder.Element.Heading --#region Tinkr.Util.GUIBuilder.Element.ScrollGroup ---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Options : Tinkr.Util.GUIBuilder.Base.GroupElement.Options ---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config : Tinkr.Util.GUIBuilder.Element.ScrollGroup.Options ---@field type "ScrollGroup" ---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Instance ---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config): Tinkr.Util.GUIBuilder.Element.ScrollGroup.Instance --#endregion Tinkr.Util.GUIBuilder.Element.ScrollGroup --#region Tinkr.Util.GUIBuilder.Element.HTML ---@class Tinkr.Util.GUIBuilder.Element.HTML.Options : string ---@class Tinkr.Util.GUIBuilder.Element.HTML.Config ---@field html string ---@field type "HTML" ---@class Tinkr.Util.GUIBuilder.Element.HTML.Instance ---@class Tinkr.Util.GUIBuilder.Element.HTML.Factory ---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.HTML.Config): Tinkr.Util.GUIBuilder.Element.HTML.Instance --#endregion Tinkr.Util.GUIBuilder.Element.HTML ---@class Tinkr.Util.GUIBuilder.Listener ---@field to_source boolean ---@field callback fun() ---@class Tinkr.Util.GUIBuilder local GUIBuilder = { ---@param self Tinkr.Util.GUIBuilder Factory = function(self) end, ---@param self Tinkr.Util.GUIBuilder ---@param config { config: string } ---@return Tinkr.Util.GUIBuilder.Instance New = function(self, config) end, ---@param self Tinkr.Util.GUIBuilder ---@param name string ---@param factoryFunc fun(self: Tinkr.Util.GUIBuilder, options: table): Tinkr.Util.GUIBuilderChildElement RegisterElementFactory = function(self, name, factoryFunc) end, } ---@class Tinkr.Util.GUIBuilder.Instance local GUIBuilderInstance = { ---@param self Tinkr.Util.GUIBuilder.Instance ---@param config Tinkr.Util.GUIBuilder.Builder.Config ---@return Tinkr.Util.GUIBuilder.Element.Window.Instance Build = function(self, config) end, ---@generic D ---@param self Tinkr.Util.GUIBuilder.Instance ---@param key string ---@param default? D | any ---@return D GetConfig = function(self, key, default) end, } ---@class Tinkr.Util.GUIBuilder.Element.Factory ---@field Button fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Button.Config): Tinkr.Util.GUIBuilder.Element.Button.Instance ---@field Checkbox fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Checkbox.Config): Tinkr.Util.GUIBuilder.Element.Checkbox.Instance ---@field ColorPicker fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.ColorPicker.Config): Tinkr.Util.GUIBuilder.Element.ColorPicker.Instance ---@field Columns fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Columns.Config): Tinkr.Util.GUIBuilder.Element.Columns.Instance ---@field Dropdown fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Dropdown.Config): Tinkr.Util.GUIBuilder.Element.Dropdown.Instance ---@field EditBox fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.EditBox.Config): Tinkr.Util.GUIBuilder.Element.EditBox.Instance ---@field Group fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Group.Config): Tinkr.Util.GUIBuilder.Element.Group.Instance ---@field HTML fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.HTML.Config): Tinkr.Util.GUIBuilder.Element.HTML.Instance ---@field Heading fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Heading.Config): Tinkr.Util.GUIBuilder.Element.Heading.Instance ---@field Image fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Image.Config): Tinkr.Util.GUIBuilder.Element.Image.Instance ---@field Padding fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Padding.Config): Tinkr.Util.GUIBuilder.Element.Padding.Instance ---@field Radio fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Radio.Config): Tinkr.Util.GUIBuilder.Element.Radio.Instance ---@field Rows fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Rows.Config): Tinkr.Util.GUIBuilder.Element.Rows.Instance ---@field ScrollGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config): Tinkr.Util.GUIBuilder.Element.ScrollGroup.Instance ---@field SimpleGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config): Tinkr.Util.GUIBuilder.Element.SimpleGroup.Instance ---@field Slider fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Slider.Config): Tinkr.Util.GUIBuilder.Element.Slider.Instance ---@field Spacer fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Spacer.Config): Tinkr.Util.GUIBuilder.Element.Spacer.Instance ---@field TabGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.TabGroup.Config): Tinkr.Util.GUIBuilder.Element.TabGroup.Instance ---@field Text fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Text.Config): Tinkr.Util.GUIBuilder.Element.Text.Instance ---@field TreeGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.TreeGroup.Config): Tinkr.Util.GUIBuilder.Element.TreeGroup.Instance ---@field Window fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Window.Config): Tinkr.Util.GUIBuilder.Element.Window.Instance ---@class Tinkr.Util.GUIBuilder.Instance : Tinkr.Util.GUIBuilder ---@field Button fun(self: Tinkr.Util.GUIBuilder.Instance, buttonOptions: Tinkr.Util.GUIBuilder.Element.Button.Options): Tinkr.Util.GUIBuilder.Element.Button.Config ---@field Checkbox fun(self: Tinkr.Util.GUIBuilder.Instance, checkboxOptions: Tinkr.Util.GUIBuilder.Element.Checkbox.Options): Tinkr.Util.GUIBuilder.Element.Checkbox.Config ---@field ColorPicker fun(self: Tinkr.Util.GUIBuilder.Instance, colorPickerOptions: Tinkr.Util.GUIBuilder.Element.ColorPicker.Options): Tinkr.Util.GUIBuilder.Element.ColorPicker.Config ---@field Columns fun(self: Tinkr.Util.GUIBuilder.Instance, columnsOptions: Tinkr.Util.GUIBuilder.Element.Columns.Options): Tinkr.Util.GUIBuilder.Element.Columns.Config ---@field Dropdown fun(self: Tinkr.Util.GUIBuilder.Instance, dropdownOptions: Tinkr.Util.GUIBuilder.Element.Dropdown.Options): Tinkr.Util.GUIBuilder.Element.Dropdown.Config ---@field EditBox fun(self: Tinkr.Util.GUIBuilder.Instance, editBoxOptions: Tinkr.Util.GUIBuilder.Element.EditBox.Options): Tinkr.Util.GUIBuilder.Element.EditBox.Config ---@field Emit fun(self: Tinkr.Util.GUIBuilder.Instance, key: string, value: any, toSource?: boolean) ---@field Group fun(self: Tinkr.Util.GUIBuilder.Instance, groupOptions: Tinkr.Util.GUIBuilder.Element.Group.Options): Tinkr.Util.GUIBuilder.Element.Group.Config ---@field HTML fun(self: Tinkr.Util.GUIBuilder.Instance, htmlOptions: Tinkr.Util.GUIBuilder.Element.HTML.Options): Tinkr.Util.GUIBuilder.Element.HTML.Config ---@field Heading fun(self: Tinkr.Util.GUIBuilder.Instance, headingOptions: Tinkr.Util.GUIBuilder.Element.Heading.Options): Tinkr.Util.GUIBuilder.Element.Heading.Config ---@field Image fun(self: Tinkr.Util.GUIBuilder.Instance, imageOptions: Tinkr.Util.GUIBuilder.Element.Image.Options): Tinkr.Util.GUIBuilder.Element.Image.Config ---@field Listen fun(self: Tinkr.Util.GUIBuilder.Instance, key: string, callback: fun(key: string, value: any)): Tinkr.Util.GUIBuilder.Listener ---@field Padding fun(self: Tinkr.Util.GUIBuilder.Instance, paddingOptions: Tinkr.Util.GUIBuilder.Element.Padding.Options): Tinkr.Util.GUIBuilder.Element.Padding.Config ---@field Radio fun(self: Tinkr.Util.GUIBuilder.Instance, radioOptions: Tinkr.Util.GUIBuilder.Element.Radio.Options): Tinkr.Util.GUIBuilder.Element.Radio.Config ---@field ReadConfig fun(self: Tinkr.Util.GUIBuilder.Instance, name: string, default?: any): any ---@field RemoveListener fun(self: Tinkr.Util.GUIBuilder.Instance, key: string, listener: Tinkr.Util.GUIBuilder.Listener) ---@field Rows fun(self: Tinkr.Util.GUIBuilder.Instance, rowsOptions: Tinkr.Util.GUIBuilder.Element.Rows.Options): Tinkr.Util.GUIBuilder.Element.Rows.Config ---@field ScrollGroup fun(self: Tinkr.Util.GUIBuilder.Instance, scrollGroupOptions: Tinkr.Util.GUIBuilder.Element.ScrollGroup.Options): Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config ---@field SetConfig fun(self: Tinkr.Util.GUIBuilder.Instance, name: string) ---@field SimpleGroup fun(self: Tinkr.Util.GUIBuilder.Instance, simpleGroupOptions: Tinkr.Util.GUIBuilder.Element.SimpleGroup.Options): Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config ---@field Slider fun(self: Tinkr.Util.GUIBuilder.Instance, sliderOptions: Tinkr.Util.GUIBuilder.Element.Slider.Options): Tinkr.Util.GUIBuilder.Element.Slider.Config ---@field Spacer fun(self: Tinkr.Util.GUIBuilder.Instance, spacerOptions: Tinkr.Util.GUIBuilder.Element.Spacer.Options): Tinkr.Util.GUIBuilder.Element.Spacer.Config ---@field Tab fun(self: Tinkr.Util.GUIBuilder.Instance, tabOptions: Tinkr.Util.GUIBuilder.Element.Tab.Options): Tinkr.Util.GUIBuilder.Element.Tab.Config ---@field TabGroup fun(self: Tinkr.Util.GUIBuilder.Instance, tabGroupOptions: Tinkr.Util.GUIBuilder.Element.TabGroup.Options): Tinkr.Util.GUIBuilder.Element.TabGroup.Config ---@field Text fun(self: Tinkr.Util.GUIBuilder.Instance, textOptions: Tinkr.Util.GUIBuilder.Element.Text.Options | string): Tinkr.Util.GUIBuilder.Element.Text.Config ---@field TreeBranch fun(self: Tinkr.Util.GUIBuilder.Instance, treeBranchOptions: Tinkr.Util.GUIBuilder.Element.TreeBranch.Options): Tinkr.Util.GUIBuilder.Element.TreeBranch.Config ---@field TreeGroup fun(self: Tinkr.Util.GUIBuilder.Instance, treeGroupOptions: Tinkr.Util.GUIBuilder.Element.TreeGroup.Options): Tinkr.Util.GUIBuilder.Element.TreeGroup.Config ---@field validate fun(self: Tinkr.Util.GUIBuilder.Instance, options: string[]) ---@field validateRule fun(self: Tinkr.Util.GUIBuilder.Instance, options: string[], rule: string, value: any): boolean ---@field Window fun(self: Tinkr.Util.GUIBuilder.Instance, windowOptions: Tinkr.Util.GUIBuilder.Element.Window.Options): Tinkr.Util.GUIBuilder.Element.Window.Config ---@field WriteConfig fun(self: Tinkr.Util.GUIBuilder.Instance, name: string, value: any) ---@field atomic table ---@field config Tinkr.Util.Config.Instance ---@field key string ---@field keys { [string]: boolean } ---@field listeners { [string]: Tinkr.Util.GUIBuilder.Listener[] } ---@field elements Tinkr.Util.GUIBuilder.Element.Factory ---@alias Tinkr.Util.GUIBuilder.Builder.Config Tinkr.Util.GUIBuilder.Element.Window.Config --#endregion Tinkr.Util.GUIBuilder --#region Tinkr.Util.Common ---@class Tinkr.Util.Common local TinkrUtilCommon = { HitFlags = TinkrCollisionFlags, ---@param number number ---@param decimals number ---@return number Round = function(number, decimals) end, ---@param x number ---@param y number ---@param hitFlags CollisionFlags ---@return number x, number y, number z ScreenToWorld = function(x, y, hitFlags) end, ---@param length number ---@return string RandomVariable = function(length) end, ---@param x1 number ---@param y1 number ---@param z1 number ---@param x2 number ---@param y2 number ---@param z2 number ---@return number GetAnglesBetweenPositions = function(x1, y1, z1, x2, y2, z2) end, } --#endregion Tinkr.Util.Common --#region Tinkr.Util.Config --#region Tinkr.Util.Config.Instance ---@class Tinkr.Util.Config.Instance : Tinkr.Util.Config ---@field data table ---@field file string --#endregion Tinkr.Util.Config.Instance ---@class Tinkr.Util.Config ---@field New fun(self: Tinkr.Util.Config, name: string): Tinkr.Util.Config.Instance ---@field Read fun(self: Tinkr.Util.Config.Instance, key: string, default: any): any ---@field Sync fun(self: Tinkr.Util.Config.Instance, key: string) ---@field Write fun(self: Tinkr.Util.Config.Instance, key: string, value: any) --#endregion Tinkr.Util.Config --#region Tinkr.Util.Crypto --#region Tinkr.Util.Crypto.AES ---@class Tinkr.Util.Crypto.AES local TinkrUtilCryptoAES = { ---@param self Tinkr.Util.Crypto.AES ---@return string IV = function(self) end, ---@param self Tinkr.Util.Crypto.AES ---@param input string ---@param key string ---@param iv string ---@return string Encrypt = function(self, input, key, iv) end, ---@param self Tinkr.Util.Crypto.AES ---@param input string ---@param key string ---@param iv string ---@return string Decrypt = function(self, input, key, iv) end, } --#endregion Tinkr.Util.Crypto.AES --#region Tinkr.Util.Crypto.Hash ---@class Tinkr.Util.Crypto.Hash local TinkrUtilCryptoHash = { ---@param self Tinkr.Util.Crypto.Hash ---@param input string ---@return string MD5 = function(self, input) end, ---@param self Tinkr.Util.Crypto.Hash ---@param input string ---@return string SHA1 = function(self, input) end, ---@param self Tinkr.Util.Crypto.Hash ---@param input string ---@return string SHA2 = function(self, input) end, ---@param self Tinkr.Util.Crypto.Hash ---@param input string ---@return string SHA256 = function(self, input) end, ---@param self Tinkr.Util.Crypto.Hash ---@param input string ---@return string SHA3 = function(self, input) end, ---@param self Tinkr.Util.Crypto.Hash ---@param algo HMacHashType ---@param input string ---@param key string ---@return string HMAC = function(self, algo, input, key) end, } --#endregion Tinkr.Util.Crypto.Hash --#region Tinkr.Util.Crypto.Base64 ---@class Tinkr.Util.Crypto.Base64 local TinkrUtilCryptoBase64 = { ---@param self Tinkr.Util.Crypto.Base64 ---@param input string ---@return string Encode = function(self, input) end, ---@param self Tinkr.Util.Crypto.Base64 ---@param input string ---@return string Decode = function(self, input) end, } --#endregion Tinkr.Util.Crypto.Base64 ---@class Tinkr.Util.Crypto local TinkrUtilCrypto = { ---@type Tinkr.Util.Crypto.AES AES = {}, ---@type Tinkr.Util.Crypto.Hash Hash = {}, ---@type Tinkr.Util.Crypto.Base64 Base64 = {}, } --#endregion Tinkr.Util.Crypto --#region Tinkr.Util.Modules --#region Tinkr.Util.Modules.Detour ---@class Tinkr.Util.Modules.Detour local TinkrUtilModulesDetour = { ---@param self Tinkr.Util.Modules.Detour ---@param path Position[] ---@return Position[] SmoothPath = function(self, path) end, ---@param self Tinkr.Util.Modules.Detour ---@param path Position[] ---@return Position[] FlattenPath = function(self, path) end, ---@param self Tinkr.Util.Modules.Detour ---@param path Position[] ---@return Position[] PreparePath = function(self, path) end, ---@param self Tinkr.Util.Modules.Detour ---@param object TinkrObjectReference ---@return Position[] ToObject = function(self, object) end, ---@param self Tinkr.Util.Modules.Detour ---@param x number ---@param y number ---@param z number ---@return Position[] ToPosition = function(self, x, y, z) end, ---@param self Tinkr.Util.Modules.Detour ---@param startX number ---@param startY number ---@param startZ number ---@param destX number ---@param destY number ---@param destZ number ---@return Position[] Raw = function(self, startX, startY, startZ, destX, destY, destZ) end, ---@param self Tinkr.Util.Modules.Detour ---@param route Position[] ---@param close Position ---@return Position[] ConnectWaypoints = function(self, route, close) end, ---@param self Tinkr.Util.Modules.Detour ---@param path Position[] ---@param color string DebugPath = function(self, path, color) end, ---@param self Tinkr.Util.Modules.Detour ---@param path Position[] ---@param color string DebugTiles = function(self, path, color) end, } --#endregion Tinkr.Util.Modules.Detour --#region Tinkr.Util.Modules.Draw ---@class Tinkr.Util.Modules.Draw local TinkrUtilModulesDraw = { ---@param self Tinkr.Util.Modules.Draw ---@param wx number ---@param wy number ---@param wz number WorldToScreen = function(self, wx, wy, wz) end, ---@param self Tinkr.Util.Modules.Draw ---@return number x, number y, number z CameraPosition = function(self) end, ---@param self Tinkr.Util.Modules.Draw ---@param value number ---@param fromLow number ---@param fromHigh number ---@param toLow number ---@param toHigh number Map = function(self, value, fromLow, fromHigh, toLow, toHigh) end, ---@param self Tinkr.Util.Modules.Draw ---@param r number ---@param g number ---@param b number ---@param a number SetColor = function(self, r, g, b, a) end, ---@param self Tinkr.Util.Modules.Draw ---@param r number ---@param g number ---@param b number ---@param a number SetColorRaw = function(self, r, g, b, a) end, ---@param self Tinkr.Util.Modules.Draw ---@param a number SetAlpha = function(self, a) end, ---@param self Tinkr.Util.Modules.Draw ---@param ax number ---@param ay number ---@param az number ---@param bx number ---@param by number ---@param bz number ---@return number Distance = function(self, ax, ay, az, bx, by, bz) end, ---@param self Tinkr.Util.Modules.Draw ---@param x1 number ---@param y1 number ---@param x2 number ---@return number Distance2D = function(self, x1, y1, x2, y2) end, ---@param self Tinkr.Util.Modules.Draw ---@param width number SetWidth = function(self, width) end, ---@param self Tinkr.Util.Modules.Draw ---@param cx number ---@param cy number ---@param cz number ---@param px number ---@param py number ---@param pz number ---@param r number RotateX = function(self, cx, cy, cz, px, py, pz, r) end, ---@param self Tinkr.Util.Modules.Draw ---@param cx number ---@param cy number ---@param cz number ---@param px number ---@param py number ---@param pz number ---@param r number RotateY = function(self, cx, cy, cz, px, py, pz, r) end, ---@param self Tinkr.Util.Modules.Draw ---@param cx number ---@param cy number ---@param cz number ---@param px number ---@param py number ---@param pz number ---@param r number RotateZ = function(self, cx, cy, cz, px, py, pz, r) end, ---@param self Tinkr.Util.Modules.Draw ---@param x1 number ---@param y1 number ---@param z1 number ---@param x2 number ---@param y2 number ---@param z2 number ---@param maxD number Line = function(self, x1, y1, z1, x2, y2, z2, maxD) end, ---@param self Tinkr.Util.Modules.Draw ---@param x1 number ---@param y1 number ---@param z1 number ---@param x2 number ---@param y2 number ---@param z2 number LineRaw = function(self, x1, y1, z1, x2, y2, z2) end, ---@param self Tinkr.Util.Modules.Draw ---@param sx number ---@param sy number ---@param ex number ---@param ey number Line2D = function(self, sx, sy, ex, ey) end, ---@param self Tinkr.Util.Modules.Draw ---@param x number ---@param y number ---@param z number ---@param radius number ---@param steps number Circle = function(self, x, y, z, radius, steps) end, ---@param self Tinkr.Util.Modules.Draw ---@param x number ---@param y number ---@param z number ---@param radius number ---@param height number Cylinder = function(self, x, y, z, radius, height) end, ---@param self Tinkr.Util.Modules.Draw ---@param vectors Position[] ---@param x number ---@param y number ---@param z number ---@param rotationX number ---@param rotationY number ---@param rotationZ number Array = function(self, vectors, x, y, z, rotationX, rotationY, rotationZ) end, ---@param self Tinkr.Util.Modules.Draw ---@param text string ---@param font string ---@param x number ---@param y number ---@param z number Text = function(self, text, font, x, y, z) end, ---@param self Tinkr.Util.Modules.Draw ---@param config table ---@param x number ---@param y number ---@param z number ---@param alphaA number Texture = function(self, config, x, y, z, alphaA) end, ---@param self Tinkr.Util.Modules.Draw ClearCanvas = function(self) end, ---@param self Tinkr.Util.Modules.Draw Update = function(self) end, ---@param self Tinkr.Util.Modules.Draw Helper = function(self) end, ---@param self Tinkr.Util.Modules.Draw Enable = function(self) end, ---@param self Tinkr.Util.Modules.Draw Disable = function(self) end, ---@param self Tinkr.Util.Modules.Draw ---@return boolean Enabled = function(self) end, ---@param self Tinkr.Util.Modules.Draw ---@param callback fun() Sync = function(self, callback) end, ---@param self Tinkr.Util.Modules.Draw ---@param hex string ---@return number r, number g, number b HexToRGB = function(self, hex) end, ---@param self Tinkr.Util.Modules.Draw ---@param object TinkrObjectReference SetColorFromObject = function(self, object) end, ---@param self Tinkr.Util.Modules.Draw ---@param object TinkrObjectReference ---@return number r, number g, number b GetColorFromObject = function(self, object) end, ---@param self Tinkr.Util.Modules.Draw ---@param canvas table New = function(self, canvas) end, ---@param self Tinkr.Util.Modules.Draw ---@param x number ---@param y number ---@param z number ---@param size number ---@param arc number ---@param rotation number Arc = function(self, x, y, z, size, arc, rotation) end, ---@param self Tinkr.Util.Modules.Draw ---@param x number ---@param y number ---@param z number ---@param w number ---@param l number ---@param rot number Rectangle = function(self, x, y, z, w, l, rot) end, } --#endregion Tinkr.Util.Modules.Draw --#region Tinkr.Util.Modules.Evaluator ---@class Tinkr.Util.Modules.Evaluator local TinkrUtilModulesEvaluator = { ---@param self Tinkr.Util.Modules.Evaluator ---@param length number ---@return string RandomVariable = function(self, length) end, ---@param self Tinkr.Util.Modules.Evaluator ---@param func function InjectGlobals = function(self, func) end, ---@param self Tinkr.Util.Modules.Evaluator ---@param file string ---@param args ... LoadEncrypted = function(self, file, args) end, ---@param self Tinkr.Util.Modules.Evaluator ---@param input string ---@return function Load = function(self, input, ...) end, ---@param self Tinkr.Util.Modules.Evaluator ---@param input string ---@param args any[] ---@param path string ---@return function LoadString = function(self, input, args, path) end, ---@param self Tinkr.Util.Modules.Evaluator ---@param func function ---@param ... any CallProtectedFunction = function(self, func, ...) end, ---@param self Tinkr.Util.Modules.Evaluator ---@param buffer string ---@param args ... ---@param path string LoadEncBuffer = function(self, buffer, args, path) end, ---@param self Tinkr.Util.Modules.Evaluator ---@param global string EmplaceGlobals = function(self, global) end, } --#endregion Tinkr.Util.Modules.Evaluator --#region Tinkr.Util.Modules.Event ---@class Tinkr.Util.Modules.Event local TinkrUtilModulesEvent = { ---@param self Tinkr.Util.Modules.Event ---@param event string ---@param callback fun(...) Register = function(self, event, callback) end, ---@param self Tinkr.Util.Modules.Event ---@param event string ---@param ... any Emit = function(self, event, ...) end, ---@param self Tinkr.Util.Modules.Event ---@param id string ---@param callback fun(...) RemoveListener = function(self, id, callback) end, ---@param self Tinkr.Util.Modules.Event ---@param event string ---@return number[] ids GetListeners = function(self, event) end, } --#endregion Tinkr.Util.Modules.Event --#region Tinkr.Util.Modules.File ---@class Tinkr.Util.Modules.File local TinkrUtilModulesFile = { ---List all files in a given directory. ---@param self Tinkr.Util.Modules.File ---@param dir string ---@return string[] List = function(self, dir) end, ---List all files in a given directory. ---@param self Tinkr.Util.Modules.File ---@param dir string ---@param recurse boolean ---@return string[] ListDirectory = function(self, dir, recurse) end, ---Writes the data to a given file. ---@param self Tinkr.Util.Modules.File ---@param file string ---@param data string ---@param append boolean ---@return boolean Write = function(self, file, data, append) end, ---Read the data in a given file. ---@param self Tinkr.Util.Modules.File ---@param file string ---@return string Read = function(self, file) end, ---Delete the given file. ---@param self Tinkr.Util.Modules.File ---@param file string ---@return string Delete = function(self, file) end, ---Run the given file. ---@param self Tinkr.Util.Modules.File ---@param file string ---@param args ... ---@return string Run = function(self, file, args) end, ---Load the given package. ---@param self Tinkr.Util.Modules.File ---@param file string ---@param args ... ---@return string LoadPackage = function(self, file, args) end, } --#endregion Tinkr.Util.Modules.File --#region Tinkr.Util.Modules.Fly ---@class Tinkr.Util.Modules.Fly local TinkrUtilModulesFly = {} --#endregion Tinkr.Util.Modules.Fly --#region Tinkr.Util.Modules.FrameEvent ---@class Tinkr.Util.Modules.FrameEvent local TinkrUtilModulesFrameEvent = {} --#endregion Tinkr.Util.Modules.FrameEvent --#region Tinkr.Util.Modules.HTTP ---@class Tinkr.Util.Modules.HTTP local TinkrUtilModulesHTTP = {} --#endregion Tinkr.Util.Modules.HTTP --#region Tinkr.Util.Modules.JSON ---@class Tinkr.Util.Modules.JSON local TinkrUtilModulesJSON = { ---@param json string Decode = function(self, json) end, ---@param luatable table Encode = function(self, luatable) end, } --#endregion Tinkr.Util.Modules.JSON --#region Tinkr.Util.Modules.LibStub ---@class Tinkr.Util.Modules.LibStub local TinkrUtilModulesLibStub = {} --#endregion Tinkr.Util.Modules.LibStub --#region Tinkr.Util.Modules.Movement ---@class Tinkr.Util.Modules.Movement local TinkrUtilModulesMovement = {} --#endregion Tinkr.Util.Modules.Movement --#region Tinkr.Util.Modules.ObjectManager ---@class Tinkr.Util.Modules.ObjectManager local TinkrUtilModulesObjectManager = {} --#endregion Tinkr.Util.Modules.ObjectManager --#region Tinkr.Util.Modules.Script ---@class Tinkr.Util.Modules.Script local TinkrUtilModulesScript = {} --#endregion Tinkr.Util.Modules.Script --#region Tinkr.Util.Modules.Vector3 ---@class Tinkr.Util.Modules.Vector3 local TinkrUtilModulesVector3 = {} --#endregion Tinkr.Util.Modules.Vector3 ---@class Tinkr.Util.Modules local TinkrUtilModules = { ---@type Tinkr.Util.Modules.Detour Detour = {}, ---@type Tinkr.Util.Modules.Draw Draw = {}, ---@type Tinkr.Util.Modules.Evaluator Evaluator = {}, ---@type Tinkr.Util.Modules.Event Event = {}, ---@type Tinkr.Util.Modules.File File = {}, ---@type Tinkr.Util.Modules.Fly Fly = {}, ---@type Tinkr.Util.Modules.FrameEvent FrameEvent = {}, ---@type Tinkr.Util.Modules.HTTP HTTP = {}, ---@type Tinkr.Util.Modules.JSON JSON = {}, ---@type Tinkr.Util.Modules.LibStub LibStub = {}, ---@type Tinkr.Util.Modules.Movement Movement = {}, ---@type Tinkr.Util.Modules.ObjectManager ObjectManager = {}, ---@type Tinkr.Util.Modules.Script Script = {}, ---@type Tinkr.Util.Modules.Vector3 Vector3 = {}, } --#endregion Tinkr.Util.Modules ---@class Tinkr.Util.Class.Static ---@field allocate fun(self: Tinkr.Util.Class.Instance): Tinkr.Util.Class.Instance ---@field new fun(self: Tinkr.Util.Class.Instance, ...: any ): Tinkr.Util.Class.Instance | any ---@field subclass fun(self: Tinkr.Util.Class.Instance, name: string): Tinkr.Util.Class.Instance ---@field isSubclassOf fun(self: Tinkr.Util.Class.Instance, other: Tinkr.Util.Class.Instance): boolean ---@field subclassed fun(self: Tinkr.Util.Class.Instance, other: Tinkr.Util.Class.Instance): boolean ---@field include fun(self: Tinkr.Util.Class.Instance, ...): Tinkr.Util.Class.Instance ---@class Tinkr.Util.Class.DefaultMixin ---@field __tostring fun(self: Tinkr.Util.Class.Instance): string ---@field initialize fun(self: Tinkr.Util.Class.Instance, ...) ---@field isInstanceOf fun(self: Tinkr.Util.Class.Instance, aClass: Tinkr.Util.Class.Instance): boolean ---@field static? Tinkr.Util.Class.Static ---@class Tinkr.Util.Class.Instance : Tinkr.Util.Class.DefaultMixin, Tinkr.Util.Class.Static ---@field name string ---@field super? Tinkr.Util.Class ---@field __declaredMethods table ---@field __instanceDict table ---@field __newindex fun(self: Tinkr.Util.Class.Instance, name: string, f: function) ---@overload fun() ---@class Tinkr.Util.Class ---@field class fun(self: Tinkr.Util.Class, name: string, super?: Tinkr.Util.Class.Instance): Tinkr.Util.Class.Instance ---@overload fun(self: Tinkr.Util.Class, name: string, super?: Tinkr.Util.Class.Instance): Tinkr.Util.Class.Instance ---@class Tinkr.Util.File ---@field List fun(self: Tinkr.Util.File, dir: string): string[] ---@field Read fun(self: Tinkr.Util.File, file: string): string ---@class Tinkr.Util ---@field File Tinkr.Util.File local TinkrUtil = { ---@class Tinkr.Util.Class Class = {}, ---@type Tinkr.Util.Http HTTP = {}, ---@type Tinkr.Util.Modules.Evaluator Evaluator = {}, ---@type Tinkr.Util.Commands Commands = {}, ---@type Tinkr.Util.Common Common = {}, ---@type Tinkr.Util.Config Config = {}, ---@type Tinkr.Util.Crypto Crypto = {}, ---@type Tinkr.Util.Modules Modules = {}, ---@type Tinkr.Util.GUIBuilder GUIBuilder = {}, LibStub = LibStub, JSON = Tinkr.Util.Modules.JSON, } --#endregion Tinkr.Util --#region Tinkr.FileSystem ---@class Tinkr.FileSystem local TinkrFileSystem = { ---Attempts to create a given directory. ---@param path string ---@return boolean CreateDirectory = function(path) end, ---Attempts to create a given directory. ---@param path string ---@return boolean CreateFolder = function(path) end, ---Deletes a file from the system. ---@param path string ---@return boolean DeleteFile = function(path) end, ---Checks if the given directory exists. ---@param path string ---@return boolean DirectoryExists = function(path) end, ---Checks if the given directory exists. ---@param path string ---@return boolean FolderExists = function(path) end, ---Checks if the given file exists. ---@param path string ---@return boolean FileExists = function(path) end, ---List all directories in a given directory. ---@param path string ---@return string[] ListDirectories = function(path) end, ---List all directories in a given directory. ---@param path string ---@return string[] ListFolders = function(path) end, ---List all files in a given directory. ---@param path string ---@return string[] ListFiles = function(path) end, ---List all files in a given zip. ---@param path string ---@return string[] ListZipEntries = function(path) end, ---Reads the contents of a given file. ---@param path string ---@return string ReadFile = function(path) end, ---a given file inside a zip archive. ---@param zip string ---@param entry string ---@return boolean ReadZipEntry = function(zip, entry) end, ---Writes the data to a given file. ---@param path string ---@param data string ---@param append boolean ---@return boolean WriteFile = function(path, data, append) end, ---Loads file and returns the result. ---@param path string ---@param ... any ---@return any ... require = function(path, ...) end, } CreateDirectory = TinkrFileSystem.CreateDirectory CreateFolder = TinkrFileSystem.CreateFolder DeleteFile = TinkrFileSystem.DeleteFile DirectoryExists = TinkrFileSystem.DirectoryExists FolderExists = TinkrFileSystem.FolderExists FileExists = TinkrFileSystem.FileExists ListDirectories = TinkrFileSystem.ListDirectories ListFolders = TinkrFileSystem.ListFolders ListFiles = TinkrFileSystem.ListFiles ListZipEntries = TinkrFileSystem.ListZipEntries ReadFile = TinkrFileSystem.ReadFile ReadZipEntry = TinkrFileSystem.ReadZipEntry WriteFile = TinkrFileSystem.WriteFile require = TinkrFileSystem.require --#endregion Tinkr.FileSystem --#region Tinkr.Interaction ---@class Tinkr.Interaction local TinkrInteraction = { ---Sends an afk clear packet to the server. This is like typing /afk ---@return boolean ClearAFK = function() end, ---Clears the target object. ---@param objectRef TinkrObjectReference ---@return boolean ClearNPCObject = function(objectRef) end, ---Clears the target object. ---@param objectRef TinkrObjectReference ---@return boolean ClearTargetObject = function(objectRef) end, ---Clicks the ground at the given position. This is useful for casting spells on the ground. ---@param x number ---@param y number ---@param z number Click = function(x, y, z) end, ---Interact with a unit. ---@param objectRef TinkrObjectReference ---@return boolean InteractUnit = function(objectRef) end, ---Checks if a cursor spell cast is pending. ---@return number IsSpellPending = function() end, ---Right click an object. ---@param objectRef TinkrObjectReference ---@return boolean LeftClickObject = function(objectRef) end, ---Releases an empowered spell. ---@param spellID spellId ReleaseEmpoweredSpell = function(spellID) end, ---Right click an object. ---@param objectRef TinkrObjectReference ---@return boolean RightClickObject = function(objectRef) end, ---Sends a heartbeat packet to the server. This is useful for doing things like disengaging backwards. ---@return boolean SendMovementHeartbeat = function() end, ---Sets the mouseover to a WowGameObject. ---@param objectRef TinkrObjectReference ---@return boolean SetMouseover = function(objectRef) end, ---Sets the target object to a WowGameObject. ---@param objectRef TinkrObjectReference ---@return boolean SetNPCObject = function(objectRef) end, ---Sets the target object to a WowGameObject. ---@param objectRef TinkrObjectReference ---@return boolean SetTargetObject = function(objectRef) end, } ClearAFK = TinkrInteraction.ClearAFK ClearNPCObject = TinkrInteraction.ClearNPCObject ClearTargetObject = TinkrInteraction.ClearTargetObject Click = TinkrInteraction.Click InteractUnit = TinkrInteraction.InteractUnit IsSpellPending = TinkrInteraction.IsSpellPending LeftClickObject = TinkrInteraction.LeftClickObject ReleaseEmpoweredSpell = TinkrInteraction.ReleaseEmpoweredSpell RightClickObject = TinkrInteraction.RightClickObject SendMovementHeartbeat = TinkrInteraction.SendMovementHeartbeat SetMouseover = TinkrInteraction.SetMouseover SetNPCObject = TinkrInteraction.SetNPCObject SetTargetObject = TinkrInteraction.SetTargetObject --#endregion Tinkr.Interaction --#region Tinkr.Movement ---@class Tinkr.Movement local TinkrMovement = { ---Returns the position of the camera. ---@return number x, number y, number z CameraPosition = function() end, ---Face the player in the direction given (in radians). ---@param dir number ---@param update boolean FaceDirection = function(dir, update) end, ---Face the player at a WowGameObject. ---@param objectRef TinkrObjectReference FaceObject = function(objectRef) end, ---GeneratePath a path between two positions for the given map ID. ---@param x1 number ---@param y1 number ---@param z1 number ---@param x2 number ---@param y2 number ---@param z2 number ---@param mapId integer ---@return PositionArray path, PathTypes pathType GeneratePath = function(x1, y1, z1, x2, y2, z2, mapId) end, ---GeneratePath a path between two positions for the given map ID, attaching an extra weight to each poly edge examined. ---@param x1 number ---@param y1 number ---@param z1 number ---@param x2 number ---@param y2 number ---@param z2 number ---@param mapId integer ---@param weightCalc fun(ax: number, ay: number, az: number, bx: number, by: number, bz: number): number ---@return PositionArray path GeneratePathWeighted = function(x1, y1, z1, x2, y2, z2, mapId, weightCalc) end, ---Returns the current area info. ---@return { continentID: integer, areaID: integer, parentAreaID: integer } GetAreaInfo = function() end, ---Returns the position of the players corpse. ---@return number x, number y, number z GetCorpsePosition = function() end, ---Returns the position of the players corpse. ---@return number x, number y, number z GetCorpseLocation = function() end, ---Returns the current mapID for use with GeneratePath. ---@return integer GetMapID = function() end, ---Get the players current pitch ---@return number GetPitch = function() end, ---Click to Move to a given position. ---@param x number ---@param y number ---@param z number MoveTo = function(x, y, z) end, ---Click to Move to a raw position ignoring transport world relativity ---@param x number ---@param y number ---@param z number MoveToRaw = function(x, y, z) end, ---Set your players rotation instantly to face a direction using the games input controller ---@param theta number SetHeading = function(theta) end, ---Set your players rotation instantly to face a direction using the games input controller ---@param theta number SetPitch = function(theta) end, } CameraPosition = TinkrMovement.CameraPosition FaceDirection = TinkrMovement.FaceDirection FaceObject = TinkrMovement.FaceObject GeneratePath = TinkrMovement.GeneratePath GeneratePathWeighted = TinkrMovement.GeneratePathWeighted GetAreaInfo = TinkrMovement.GetAreaInfo GetCorpseLocation = TinkrMovement.GetCorpseLocation GetCorpsePosition = TinkrMovement.GetCorpsePosition GetMapID = TinkrMovement.GetMapID GetPitch = TinkrMovement.GetPitch MoveTo = TinkrMovement.MoveTo MoveToRaw = TinkrMovement.MoveToRaw SetHeading = TinkrMovement.SetHeading SetPitch = TinkrMovement.SetPitch --#endregion Tinkr.Movement --#region Tinkr.Objects ---@class Tinkr.Objects local TinkrObjects = { ---Returns the spellID of a WowGameObject representation of an Area Trigger ---@param objectRef TinkrObjectReference ---@return spellId | false AreaTriggerSpell = function(objectRef) end, ---Returns the gameobject type of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return GameObjectType | false GameObjectType = function(objectRef) end, ---Gets a list of all Missiles. ---@return Missle[] Missiles = function() end, ---Gets a single object. ---@param unitId UnitId ---@return WowGameObject | false Object = function(unitId) end, ---Get an objects hidden aura ---@param objectRef TinkrObjectReference ---@param index integer ---@return string name, number icon, number count, (DispelType | nil) displType, number duration, number expirationTime, UnitId source, boolean isStealable, boolean nameplateShowPersonal, spellId spellId, boolean canApplyAura, boolean isBossDebuff, boolean castByPlayer, boolean nameplateShowAll, number timeMod ---@overload fun(objectRef: TinkrObjectReference, index: integer): nil ObjectAura = function(objectRef, index) end, ---Returns the bounding radius of a WowGameObject in radians. ---@param objectRef TinkrObjectReference ---@return number | false ObjectBoundingRadius = function(objectRef) end, ---Returns the casting and channeling spell of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number[] | false ObjectCastingInfo = function(objectRef) end, ---Returns a WowGameObject representing the destination for a units current spell cast. ---@param objectRef TinkrObjectReference ---@return WowGameObject | false ObjectCastingTarget = function(objectRef) end, ---Returns the combat reach of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number | false ObjectCombatReach = function(objectRef) end, ---Returns the creator of the WowGameObject. ---@param objectRef TinkrObjectReference ---@return TinkrObjectReference | false ObjectCreator = function(objectRef) end, ---Returns the creature type of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return UnitCreatureType | false ObjectCreatureType = function(objectRef) end, ---Returns the distance between two WowGameObject's. ---@param fromObjectRef TinkrObjectReference ---@param toObjectRef TinkrObjectReference ---@return number | false ObjectDistance = function(fromObjectRef, toObjectRef) end, ---Returns the flags of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number flags1, number flags2, number flags3, number flags4, number unitFlags1, number unitFlags2, number dynamicFlags ---@overload fun(objectRef: TinkrObjectReference): false ObjectFlags = function(objectRef) end, ---Returns the GUID of a WowGameObject. This is equal to UnitGUID but supports any object ---@param objectRef TinkrObjectReference ---@return string | false ObjectGUID = function(objectRef) end, ---Returns the hight of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number | false ObjectHeight = function(objectRef) end, ---Returns the ID of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number | false ObjectID = function(objectRef) end, ---Check if a WowGameObject is outside (AKA not in a cave). ---@param objectRef TinkrObjectReference ---@return boolean ObjectIsOutdoors = function(objectRef) end, ---Check if a WowGameObject is submerged (AKA in the water). ---@param objectRef TinkrObjectReference ---@return boolean ObjectIsSubmerged = function(objectRef) end, ---Returns if a WowGameObject is lootable or not. ---@param objectRef TinkrObjectReference ---@return boolean ObjectLootable = function(objectRef) end, ---Returns the current movement state of a Unit ---@param objectRef TinkrObjectReference ---@return TinkrMovementFlags ObjectMovementFlag = function(objectRef) end, ---Returns the objectReference that the WowGameObject is moving on. ---@param objectRef TinkrObjectReference ---@return TinkrObjectReference | false ObjectMover = function(objectRef) end, ---Returns the name of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return string | false ObjectName = function(objectRef) end, ---Returns the position of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number x, number y, number z ObjectPosition = function(objectRef) end, ---Returns the raw position of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number x, number y, number z ObjectRawPosition = function(objectRef) end, ---Returns the raw rotation of a WowGameObject in radians. ---@param objectRef TinkrObjectReference ---@return number | false ObjectRawRotation = function(objectRef) end, ---Returns the rotation of a WowGameObject in radians. ---@param objectRef TinkrObjectReference ---@return number | false ObjectRotation = function(objectRef) end, ---Returns if a WowGameObject is skinned or not. ---@param objectRef TinkrObjectReference ---@return boolean ObjectSkinnable = function(objectRef) end, ---Returns the skinning type of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return SkinType | false ObjectSkinningType = function(objectRef) end, ---Returns the spec ID of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number | false ObjectSpecializationID = function(objectRef) end, ---Returns the type of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return TObjectTypes | false ObjectType = function(objectRef) end, ---@param objectRef TinkrObjectReference ---@return string ObjectUnit = function(objectRef) end, ---Returns a WowGameObject representing the current target of an object. ---@param objectRef TinkrObjectReference ---@return WowGameObject | false ObjectTarget = function(objectRef) end, ---Returns the world position of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number x, number y, number z ObjectWorldPosition = function(objectRef) end, ---Gets a list of all objects. ---@param filterTypeId? TObjectTypes ---@return WowGameObject[] Objects = function(filterTypeId) end, ---Returns the duel team of a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number UnitDuelTeam = function(objectRef) end, ---Check if a WowGameObject is mounted. ---@param objectRef TinkrObjectReference ---@return boolean UnitIsMounted = function(objectRef) end, ---Check if a WowGameObject is sitting. ---@param objectRef TinkrObjectReference ---@return boolean UnitIsSitting = function(objectRef) end, ---Return item levels for a WowGameObject. ---@param objectRef TinkrObjectReference ---@return number equipped, number current, number avg, number max UnitItemLevels = function(objectRef) end, ---Returns a WowGameObject representing the current loot target of an object. ---@param objectRef TinkrObjectReference ---@return WowGameObject | false ObjectLootTarget = function(objectRef) end, ---Returns a WowGameObject shapeshift ID. ---@param objectRef TinkrObjectReference ---@return number | false UnitShapeShiftID = function(objectRef) end, --A more "advanced" way to find the "top" of the mob where you could possibly cast a spell towards. ---@param objectRef TinkrObjectReference ---@param typeID number ---@return number, number, number GetUnitAttachmentPosition = function(objectRef, typeID) end, ---Returns the model id of the object. ---@param objectRef TinkrObjectReference ---@return number ObjectModelId = function(objectRef) end, } AreaTriggerSpell = TinkrObjects.AreaTriggerSpell GameObjectType = TinkrObjects.GameObjectType Missiles = TinkrObjects.Missiles Object = TinkrObjects.Object ObjectAura = TinkrObjects.ObjectAura ObjectBoundingRadius = TinkrObjects.ObjectBoundingRadius ObjectCastingInfo = TinkrObjects.ObjectCastingInfo ObjectCastingTarget = TinkrObjects.ObjectCastingTarget ObjectCombatReach = TinkrObjects.ObjectCombatReach ObjectCreator = TinkrObjects.ObjectCreator ObjectCreatureType = TinkrObjects.ObjectCreatureType ObjectDistance = TinkrObjects.ObjectDistance ObjectFlags = TinkrObjects.ObjectFlags ObjectGUID = TinkrObjects.ObjectGUID ObjectHeight = TinkrObjects.ObjectHeight ObjectID = TinkrObjects.ObjectID ObjectIsOutdoors = TinkrObjects.ObjectIsOutdoors ObjectIsSubmerged = TinkrObjects.ObjectIsSubmerged ObjectLootTarget = TinkrObjects.ObjectLootTarget ObjectLootable = TinkrObjects.ObjectLootable ObjectModelId = TinkrObjects.ObjectModelId ObjectMovementFlag = TinkrObjects.ObjectMovementFlag ObjectMover = TinkrObjects.ObjectMover ObjectName = TinkrObjects.ObjectName ObjectPosition = TinkrObjects.ObjectPosition ObjectRawPosition = TinkrObjects.ObjectRawPosition ObjectRawRotation = TinkrObjects.ObjectRawRotation ObjectRotation = TinkrObjects.ObjectRotation ObjectSkinnable = TinkrObjects.ObjectSkinnable ObjectSkinningType = TinkrObjects.ObjectSkinningType ObjectSpecializationID = TinkrObjects.ObjectSpecializationID ObjectTarget = TinkrObjects.ObjectTarget ObjectType = TinkrObjects.ObjectType ObjectUnit = TinkrObjects.ObjectUnit ObjectWorldPosition = TinkrObjects.ObjectWorldPosition Objects = TinkrObjects.Objects UnitDuelTeam = TinkrObjects.UnitDuelTeam UnitIsMounted = TinkrObjects.UnitIsMounted UnitIsSitting = TinkrObjects.UnitIsSitting UnitItemLevels = TinkrObjects.UnitItemLevels UnitShapeShiftID = TinkrObjects.UnitShapeShiftID GetUnitAttachmentPosition = TinkrObjects.GetUnitAttachmentPosition --#endregion Tinkr.Objects --#region Tinkr.Utility ---@class Tinkr.Utility local TinkrUtility = { ---Bring a window to the foreground ---@return boolean BringWindowToForeground = function() end, ---Crash a client ---@return nil Crash = function() end, ---Runs lua code in a unprotected environment. ---@param code string ---@param debugName? string Eval = function(code, debugName) end, ---Calculates the distance in C land quicker than it can be done in Lua. ---@param x1 number ---@param y1 number ---@param z1 number ---@param x2 number ---@param y2 number ---@param z2 number ---@return number FastDistance = function(x1, y1, z1, x2, y2, z2) end, ---Calculates the 2D distance in C land quicker than it can be done in Lua. ---@param x1 number ---@param y1 number ---@param x2 number ---@param y2 number ---@return number FastDistance2D = function(x1, y1, x2, y2) end, ---Returns the architecture of a tinkr build ---@return 'arm64' | 'x86_64' GetArchitecture = function() end, ---Gets information about an auction (this is classic only). ---@param type 'list' | 'bidder' | 'owner' ---@param index number ---@return number itemID, number expiresAt, string expiresAtString, number currentBid, string currentBidString, number buyout, string buyoutString, string creator GetAuctionInfo = function(type, index) end, ---Gets the last time a game tick happened. ---@return number GetGameTick = function() end, ---Get the state of a key ---@param key KeyCode ---@return boolean GetKeyState = function(key) end, ---GetLastHardwareActionTime returns the last time your game client received a hardware interaction ---@return number GetLastHardwareActionTime = function() end, ---Check if a window is in the foreground ---@return boolean GetWindowStatus = function() end, ---Check if a the player is in the game world ---@return boolean IsInGame = function() end, ---Do JSON decoding in C land. ---@param string string ---@return table JsonDecode = function(string) end, ---Do JSON encoding in C land. ---@param table table ---@return string JsonEncode = function(table) end, ---Do BSON decoding in C land. ---@param data string ---@return table BsonDecode = function(data) end, ---Do BSON encoding in C land. ---@param table table ---@return string BsonEncode = function(table) end, ---Kill a client Kill = function() end, ---Log output to the console ---@param str string Log = function(str) end, ---Rotate a vector (x: number, y: number, z: number) and apply a distance calculation to it. ---@param x number ---@param y number ---@param z number ---@param theta number ---@param distance number ---@return number x, number y, number z RotateVector = function(x, y, z, theta, distance) end, ---Returns the world position of a screen coordinate. ---@param x number ---@param y number ---@param hitFlags CollisionFlags ---@return number x, number y, number z ScreenToWorld = function(x, y, hitFlags) end, ---Force a frame to not be forbidden, allowing lua interactions on it ---@param frame Frame ---@return boolean SetForbiddenFrame = function(frame) end, ---SetLastHardwareActionTime updates the last input interaction time in the game client, mainly used to prevent AFK behaviors ---@param time number SetLastHardwareActionTime = function(time) end, ---Returns the position of the camera. ---@param x1 number ---@param y1 number ---@param z1 number ---@param x2 number ---@param y2 number ---@param z2 number ---@param hitFlags integer ---@return number x, number y, number z TraceLine = function(x1, y1, z1, x2, y2, z2, hitFlags) end, ---Returns the screen position of a world coordinate. ---@param x number ---@param y number ---@param z number ---@return number x, number y WorldToScreen = function(x, y, z) end, ---Check if tinkr would have injected lua into the client (Sanity check mainly, if it would return false it wouldn't exist (probably)) ---@return boolean WouldInject = function() end, ---Zlip compression in C land. ---@param string string ---@param level number ---@return string Deflate = function(string, level) end, ---Zlib compression in C land. ---@param data string ---@return string Inflate = function(data) end, ---loadstring but without lua taint. ---@param code string ---@return function loadstringsecure = function(code) end, } BringWindowToForeground = TinkrUtility.BringWindowToForeground BsonDecode = TinkrUtility.BsonDecode BsonEncode = TinkrUtility.BsonEncode Crash = TinkrUtility.Crash Deflate = TinkrUtility.Deflate Eval = TinkrUtility.Eval FastDistance = TinkrUtility.FastDistance FastDistance2D = TinkrUtility.FastDistance2D GetArchitecture = TinkrUtility.GetArchitecture GetAuctionInfo = TinkrUtility.GetAuctionInfo GetGameTick = TinkrUtility.GetGameTick GetKeyState = TinkrUtility.GetKeyState GetLastHardwareActionTime = TinkrUtility.GetLastHardwareActionTime GetWindowStatus = TinkrUtility.GetWindowStatus Inflate = TinkrUtility.Inflate IsInGame = TinkrUtility.IsInGame JsonDecode = TinkrUtility.JsonDecode JsonEncode = TinkrUtility.JsonEncode Kill = TinkrUtility.Kill Log = TinkrUtility.Log RotateVector = TinkrUtility.RotateVector ScreenToWorld = TinkrUtility.ScreenToWorld SetForbiddenFrame = TinkrUtility.SetForbiddenFrame SetLastHardwareActionTime = TinkrUtility.SetLastHardwareActionTime TraceLine = TinkrUtility.TraceLine WorldToScreen = TinkrUtility.WorldToScreen WouldInject = TinkrUtility.WouldInject loadstringsecure = TinkrUtility.loadstringsecure --#endregion Tinkr.Utility ---@class Tinkr : Tinkr.Utility ---@field Util Tinkr.Util local Tinkr = { name = "Tinkr", classic = false, retail = false, era = false, Common = {}, ---@param path string ---@return string, string resolvePath = function(path) end, } AuraUtil_ForEachAura = AuraUtil.ForEachAura C_UnitAuras_GetAuraDataByAuraInstanceID = C_UnitAuras.GetAuraDataByAuraInstanceID