-
Notifications
You must be signed in to change notification settings - Fork 134
/
luaserver.lua
6245 lines (4751 loc) · 191 KB
/
luaserver.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---Contents for the blizzard_documentation field "Arguments".
---@class blizzard_documentation_arguments : table
---@field Name string the name of the argument
---@field Type string the type of the argument: if is not a primitive type, just use the type name as string
---@field Nilable boolean whether the argument can be nil
---@field Mixin string? the mixin of the argument
---Contents for the blizzard_documentation field "Returns".
---@class blizzard_documentation_returns : table
---@field Name string the name of the return
---@field Type string the type of the return: if is not a primitive type, just use the type name as string
---@field Nilable boolean whether the return can be nil
---This table contains documentation for functions inside C_ChallengeMode.
---@class blizzard_documentation : table
---@field Name string the name of the field, can be
---@field Type string most of the time the type is "Function"
---@field Arguments blizzard_documentation_arguments[]? a table containing the arguments of the function
---@field Returns blizzard_documentation_returns[]? a table containing the returns of the function, the the type is table, it may have "InnerType" which is the type of the elements inside the table
---@class LibStub : table
LibStub = {}
function LibStub:NewLibrary(major, minor)end
function LibStub:GetLibrary(major, silent)end
function LibStub:IterateLibraries()end
CLASS_ICON_TCOORDS = {}
--uiobject: is an object that represents a UI element, such as a frame, a texture, or a button. UIObjects are the base class for all UI elements in the WoW API.
--3D World: is an object which is placed behind|below all UI elements, cannot be parent of any object, in the 3D World object is where the game world is rendered
--size: corresponds to the height and height of an object, it is measure in pixels, must be bigger than zero.
--scale: the size of an object is multiplied by this value, it is measure in percentage, must be between 0.65 and 2.40.
--alpha: corresponds to the transparency of an object, the bigger is the value less transparent is the object, it is measure in percentage, must be between 0 and 1, zero is fully transparent and one is fully opaque.
--controller: abstract term to define who's in control of an entity, can be the server or a player.
--npc: an entity shown in the 3d world with a name and a health bar, can be friendly or hostile, can be interacted with, always controlled by the server.
--player: is an entity that represents a player character, the controller is always player, player is always a human.
--pet: represents a npc controlled by the server and can accept commands from the player.
--guadians: represents a npc, the server has the possess of the controller, don't accept commands like pets, helps attacking the enemies of the npc or player.
--role: is a string that represents the role of a unit, such as tank, healer, or damage dealer. only players can have a role.
--escape sequences: are used to represent characters that are not printable, such as new lines, tabs, and other control characters.
--in wow they are used to add colors, textures, and other special characters to a string.
--they always start with a pipe character (|) followed by a letter, and can have a value after the letter, and end with a pipe character (|) followed by another leter.
--color: myTextWithColor = "|cFF00FF00This is a green text|r". |c open the color, FF00FF00 is the color, |r close the color. Color is represented by the hexadecimal value of the color, the first two characters are the alpha, the next two are the red, the next two are the green, and the last two are the blue.
--texture: open with |T and close with |t, the first value is the texture, second and third height and width, offsetX and offsetY, textureWidth and textureHeight, texture coordinates in pixels for leftCoord, rightCoord, topCoord, and bottomCoord, the last three values are: redVertexColor, greenVertexColor, and blueVertexColor in 0 to 255.
--texture: myTextWithTexture = "|TInterface\\Icons\\INV_Misc_QuestionMark:0|tThis is a text with a question mark texture"
--texture: myTextWithTexture = "|TInterface\\Icons\\INV_Misc_QuestionMark:32:32:1:-1:64:64:4:60:4:60:0:0:255|tThis is a text with a question mark texture of size 32x32, with cropped to remove the border of the icon and with a blue color"
--atlas: open with |A and close with |a, the first value is the atlas, second and third height and width, offsetX and offsetY, and redVertexColor, greenVertexColor, and blueVertexColor in 0 to 255.
---@alias animationtype
---| "Alpha"
---| "Rotation"
---| "Scale"
---| "Translation"
---| "Path"
---| "VertexColor"
---@alias auratype
---| "BUFF"
---| "DEBUFF"
---@alias role
---| "TANK"
---| "HEALER"
---| "DAMAGER"
---| "NONE"
---@alias anchorpoint
---| "topleft"
---| "topright"
---| "bottomleft"
---| "bottomright"
---| "top"
---| "bottom"
---| "left"
---| "right"
---| "center"
---@alias edgenames
---| "topleft"
---| "topright"
---| "bottomleft"
---| "bottomright"
---| "TopLeft"
---| "TopRight"
---| "BottomLeft"
---| "BottomRight"
---@alias framestrata
---| "background"
---| "low"
---| "medium"
---| "high"
---| "dialog"
---| "fullscreen"
---| "fullscreen_dialog"
---| "tooltip"
---| "BACKGROUND"
---| "LOW"
---| "MEDIUM"
---| "HIGH"
---| "DIALOG"
---| "FULLSCREEN"
---| "FULLSCREEN_DIALOG"
---| "TOOLTIP"
---@alias sizingpoint
---| "top"
---| "topright"
---| "right"
---| "bottomright"
---| "bottom"
---| "bottomleft"
---| "left"
---| "topleft"
---@alias drawlayer
---| "background"
---| "border"
---| "artwork"
---| "overlay"
---| "highlight"
---@alias buttontype
---| "AnyUp"
---| "AnyDown"
---| "LeftButtonDown"
---| "LeftButtonUp"
---| "MiddleButtonUp"
---| "MiddleButtonDown"
---| "RightButtonDown"
---| "RightButtonUp"
---| "Button4Up"
---| "Button4Down"
---| "Button5Up"
---| "Button5Down"
---@alias justifyh
---| "left"
---| "right"
---| "center"
---@alias justifyv
---| "top"
---| "bottom"
---| "middle"
---@alias fontflags
---| "none"
---| "outline"
---| "thickoutline"
---| "monochrome"
---@alias outline
---| "NONE"
---| "MONOCHROME"
---| "OUTLINE"
---| "THICKOUTLINE"
---| "OUTLINEMONOCHROME"
---| "THICKOUTLINEMONOCHROME"
---| "none"
---| "monochrome"
---| "outline"
---| "thickoutline"
---| "outlinemonochrome"
---| "thickoutlinemonochrome"
---@alias orientation
---| "HORIZONTAL"
---| "VERTICAL"
---@alias class
---| "WARRIOR"
---| "PALADIN"
---| "HUNTER"
---| "ROGUE"
---| "PRIEST"
---| "DEATHKNIGHT"
---| "SHAMAN"
---| "MAGE"
---| "WARLOCK"
---| "MONK"
---| "DRUID"
---| "DEMONHUNTER"
---| "EVOKER"
---@alias instancetype
---| "none"
---| "party"
---| "raid"
---| "arena"
---| "pvp"
---| "scenario"
---@alias texturefilter
---| "LINEAR"
---| "TRILINEAR"
---| "NEAREST"
---@alias texturewrap
---| "CLAMP"
---| "CLAMPTOBLACKADDITIVE"
---| "CLAMPTOBLACK"
---| "CLAMPTOWHITEADDITIVE"
---| "CLAMPTOWHITE"
---| "MIRROR"
---| "REPEAT"
---| "MIRRORONCE"
---@alias blendmode
---| "ADD"
---| "BLEND"
---| "DISABLE"
---| "MOD"
---| "MOD2X"
---| "OVERLAY"
---| "ALPHAKEY"
---| "REPLACE"
---| "SUBTRACT"
---@alias objecttype
---| "Frame"
---| "Button"
---| "FontString"
---| "Texture"
---| "StatusBar"
---| "Font"
---| "EditBox"
---| "CheckButton"
---| "Slider"
---| "Model"
---| "PlayerModel"
---| "DressUpModel"
---| "TabardModel"
---| "Cooldown"
---| "ScrollingMessageFrame"
---| "ScrollFrame"
---| "SimpleHTML"
---| "AnimationGroup"
---| "Animation"
---| "MessageFrame"
---| "Minimap"
---| "GameTooltip"
---@alias audiochannels
---| "Master"
---| "SFX"
---| "Music"
---| "Ambience"
---| "Dialog"
---@alias animloopmode
---| "NONE"
---| "REPEAT"
---| "BOUNCE"
---@alias animsmoothing
---| "IN"
---| "OUT"
---| "IN_OUT"
---| "NONE"
---@alias aurafilter : table
---| "HELPFUL"
---| "HARMFUL"
---| "PLAYER"
---| "RAID"
---| "CANCELABLE"
---| "NOT_CANCELABLE"
---| "INCLUDE_NAME_PLATE_ONLY"
---| "MAW"
---@class backdrop : table
---@field bgFile string?
---@field edgeFile string?
---@field tile boolean?
---@field edgeSize number?
---@field insets table?
---@class spellinfo : table
---@field name string
---@field iconID number
---@field castTime number
---@field mimRange number
---@field maxRange number
---@field spellID number
---@field originalIconID number
---@class spellchargeinfo
---@field currentCharges number
---@field maxCharges number
---@field cooldownStartTime number
---@field cooldownDuration number
---@field chargeModRate number
---@class privateaura_anchor : table
---@field unitToken unit
---@field auraIndex number
---@field parent frame
---@field showCountdownFrame boolean
---@field showCountdownNumbers boolean
---@field iconInfo privateaura_iconinfo?
---@field durationAnchor privateaura_anchorbinding?
---@class privateaura_iconinfo : table
---@field iconAnchor privateaura_anchorbinding
---@field iconWidth number
---@field iconHeight number
---@class privateaura_anchorbinding : table
---@field point anchorpoint
---@field relativeTo uiobject
---@field relativePoint anchorpoint
---@field offsetX number
---@field offsetY number
---@class privateaura_appliedsoundinfo : table
---@field unitToken unit
---@field spellID spellid
---@field soundFileName string?
---@field soundFileID number?
---@field outputChannel audiochannels?
---@class privateaura_soundid : number
---@class aurainfo : table
---@field applications number
---@field auraInstanceID number
---@field canApplyAura boolean
---@field dispelName string if not dispellable, doesn't have this key
---@field duration number
---@field expirationTime number based on GetTime, if zero, it's a permanent aura (usually weekly buffs)
---@field icon number
---@field isBossAura boolean
---@field isFromPlayerOrPlayerPet boolean
---@field isHelpful boolean true for buffs, false for debuffs
---@field isHarmful boolean true for debuffs, false for buffs
---@field isNameplateOnly boolean
---@field isRaid boolean player can cast this aura or the player can dispel this aura
---@field isStealable boolean
---@field nameplateShowPersonal boolean
---@field nameplateShowAll boolean
---@field points table
---@field spellId number
---@field timeMod number
---@field name string aura name
---@field sourceUnit string unitid
---@class atlasinfo : table
---@field filename any?
---@field file any?
---@field leftTexCoord number?
---@field rightTexCoord number?
---@field topTexCoord number?
---@field bottomTexCoord number?
---@field width number?
---@field height number?
---@field tilesHorizontally boolean?
---@field tilesVertically boolean?
---@class challengecompletioninfo : table
---@field mapChallengeModeID number
---@field level number
---@field time number
---@field onTime boolean
---@field keystoneUpgradeLevels number
---@field practiceRun boolean
---@field oldOverallDungeonScore number?
---@field newOverallDungeonScore number?
---@field isMapRecord boolean
---@field isAffixRecord boolean
---@field isEligibleForScore boolean
---@field members table
---@class challengemodecompletionmemberinfo : table
---@field memberGUID guid
---@field name string
---@alias spellid number integer each spell in the game has a unique spell id, this id can be used to identify a spell.
---@alias unitname string name of a unit
---@alias unitguid string unique id of a unit (GUID)
---@alias width number property that represents the horizontal size of a UI element, such as a frame or a texture. Gotten from the first result of GetWidth() or from the first result of GetSize(). It is expected a GetWidth() or GetSize() when the type 'height' is used.
---@alias height number property that represents the vertical size of a UI element, such as a frame or a texture. Gotten from the first result of GetHeight() or from the second result of GetSize(). It is expected a GetHeight() or GetSize() when the type 'height' is used.
---@alias framelevel number represent how high a frame is placed within its strata. The higher the frame level, the more likely it is to appear in front of other frames. The frame level is a number between 0 and 65535. The default frame level is 0. The frame level is set with the SetFrameLevel() function.
---@alias red number color value representing the red component of a color, the value must be between 0 and 1. To retrieve a color from a string or table use: local red, green, blue, alpha = DetailsFramework:ParseColors(color)
---@alias green number color value representing the green component of a color, the value must be between 0 and 1. To retrieve a color from a string or table use: local red, green, blue, alpha = DetailsFramework:ParseColors(color)
---@alias blue number color value representing the blue component of a color, the value must be between 0 and 1. To retrieve a color from a string or table use: local red, green, blue, alpha = DetailsFramework:ParseColors(color)
---@alias alpha number @number(0-1.0) value representing the alpha (transparency) of a UIObject, the value must be between 0 and 1. 0 is fully transparent, 1 is fully opaque.
---@alias unit string string that represents a unit in the game, such as the player, a party member, or a raid member.
---@alias health number amount of hit points (health) of a unit. This value can be changed by taking damage or healing.
---@alias healthmax number max amount of hit points (health) of a unit.
---@alias encounterid number encounter ID number received by the event ENCOUNTER_START and ENCOUNTER_END
---@alias encounterejid number encounter ID number used by the encounter journal
---@alias encountername string encounter name received by the event ENCOUNTER_START and ENCOUNTER_END also used by the encounter journal
---@alias encounterdifficulty number difficulty of the encounter received by the event ENCOUNTER_START and ENCOUNTER_END
---@alias instancename string localized name of an instance (e.g. "The Nighthold")
---@alias actorname string name of a unit
---@alias petname string refers to a pet's name
---@alias ownername string refers to the pet's owner name
---@alias spellname string name of a spell
---@alias classid number the ID of a class
---@alias spellschool number each spell in the game has a school, such as fire, frost, shadow and many others. This value can be used to identify the school of a spell.
---@alias actorid string unique id of a unit (GUID)
---@alias serial string unique id of a unit (GUID)
---@alias guid string unique id of a unit (GUID)
---@alias guildname string name of the guild
---@alias date string date in the format "YYYY-MM-DD"
---@alias keylevel number the level of a mythic dungeon key
---@alias mapid number each map in the game has a unique map id, this id can be used to identify a map.
---@alias challengemapid number each challenge mode map in the game has a unique map id, this id can be used to identify a challenge mode map.
---@alias specializationid number the ID of a class specialization
---@alias controlflags number flags telling what unit type the is (player, npc, pet, etc); it's relatiotionship to the player (friendly, hostile, etc); who controls the unit (controlled by the player, controlled by the server, etc)
---@alias color table @table(r: red|number, g: green|number, b: blue|number, a: alpha|number) @table(number, number, number, number) @string(color name) @hex (000000-ffffff) value representing a color, the value must be a table with the following fields: r, g, b, a. r, g, b are numbers between 0 and 1, a is a number between 0 and 1. To retrieve a color from a string or table use: local red, green, blue, alpha = DetailsFramework:ParseColors(color)
---@alias scale number @number(0.65-2.40) value representing the scale factor of the UIObject, the value must be between 0.65 and 2.40, the width and height of the UIObject will be multiplied by this value.
---@alias script string, function is a piece of code that is executed in response to a specific event, such as a button click or a frame update. Scripts can be used to implement behavior and logic for UI elements.
---@alias event string is a notification that is sent to a frame when something happens, such as a button click or a frame update. Events can be used to trigger scripts.
---@alias backdrop table @table(bgFile: string, edgeFile: string, tile: edgeSize: number, backgroundColor: color, borderColor: color) is a table that contains information about the backdrop of a frame. The backdrop is the background of a frame, which can be a solid color, a gradient, or a texture.
---@alias npcid number a number that identifies a specific npc in the game.
---@alias textureid number each texture from the game client has an id.
---@alias texturepath string access textures from addons.
---@alias atlasname string a name of an atlas, an atlas name is used with the SetAtlas() function to display a texture from the game client.
---@alias valueamount number used to represent a value, such as a damage amount, a healing amount, or a resource amount.
---@alias unixtime number a number that represents the number of seconds that have elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970, not counting leap seconds.
---@alias timestring string refers to a string showing a time value, such as "1:23" or "1:23:45".
---@alias combattime number elapsed time of a combat or time in seconds that a unit has been in combat.
---@alias servertime number unixtime on the server
---@alias auraduration number
---@alias gametime number number of seconds that have elapsed since the start of the game session.
---@alias milliseconds number a number in milliseconds, usually need to divide by 1000 to get the seconds.
---@alias coordleft number
---@alias coordright number
---@alias coordtop number
---@alias coordbottom number
---@alias addonname string name of an addon, same as the name of the ToC file.
---@alias profile table a table containing the settings of an addon, usually saved in the SavedVariables file.
---@alias profilename string name of a profile.
---@alias anchorid number a number that represents an anchor point, such as topleft, topright, bottomleft, bottomright, top, bottom, left, right, center.
---@class _G
---@field RegisterAttributeDriver fun(statedriver: frame, attribute: string, conditional: string)
---@field RegisterStateDriver fun(statedriver: frame, attribute: string, conditional: string)
---@field UnitGUID fun(unit: string): string
---@field UnitName fun(unit: string): string
---@field GetCursorPosition fun(): number, number return the position of the cursor on the screen, in pixels, relative to the bottom left corner of the screen.
---@field C_Timer C_Timer
---table containing backdrop functions
BackdropTemplateMixin = {}
---@class timer : table
---@field Cancel fun(self: timer)
---@field IsCancelled fun(self: timer): boolean
---@class C_Timer : table
---@field After fun(delay: number, func: function)
---@field NewTimer fun(delay: number, func: function): timer
---@field NewTicker fun(interval: number, func: function, iterations: number|nil): timer
---@class tablesize : {H: number, W: number}
---@class tablecoords : {L: number, R: number, T: number, B: number}
---@class texturecoords: {left: number, right: number, top: number, bottom: number}
---@class objectsize : {height: number, width: number}
---@class texturetable : {texture: string, coords: texturecoords, size: objectsize}
---@class uiobject
---@field GetObjectType fun(self: uiobject) : objecttype
---@field IsObjectType fun(self: uiobject, objectType: string) : boolean
---@field Show fun(self: uiobject) make the object be shown on the user screen
---@field Hide fun(self: uiobject) make the object be hidden from the user screen
---@field SetShown fun(self: uiobject, state: boolean) show or hide the object
---@field IsVisible fun(self: uiobject) : boolean return if the object is visible or not, visibility accounts for the object parent's be not shown
---@field IsShown fun(self: uiobject) : boolean return if the object is shown or not
---@field SetAllPoints fun(self: uiobject, target: uiobject|nil) set the object to be the same size as its parent or the target object
---@field SetParent fun(self: uiobject, parent: frame) set the parent object of the object
---@field SetSize fun(self: uiobject, width: width|number, height: height|number) set the width and height of the object
---@field SetWidth fun(self: uiobject, width: width|number) set only the width of the object
---@field SetHeight fun(self: uiobject, height: height|number) set only the height of the object
---@field SetAlpha fun(self: uiobject, alpha: alpha|number) set the transparency of the object
---@field SetScale fun(self: uiobject, scale: scale|number)
---@field GetWidth fun(self: uiobject) : width|number
---@field GetHeight fun(self: uiobject) : height|number
---@field GetScale fun(self: uiobject) : scale|number
---@field GetAlpha fun(self: uiobject) : alpha|number
---@field GetSize fun(self: uiobject) : width|number, height|number
---@field GetParent fun(self: uiobject) : any
---@field GetPoint fun(self: uiobject, index: number): string, frame, string, number, number
---@field GetCenter fun(self: uiobject): number, number
---@field GetLeft fun(self: uiobject): number
---@field GetRight fun(self: uiobject): number
---@field GetTop fun(self: uiobject): number
---@field GetBottom fun(self: uiobject): number
---@field SetPoint fun(self: uiobject, point: anchorpoint, relativeFrame: uiobject?, relativePoint: anchorpoint?, xOffset: number?, yOffset: number?)
---@field ClearAllPoints fun(self: uiobject)
---@field CreateAnimationGroup fun(self: uiobject, name: string|nil, templateName: string|nil) : animationgroup
---@field SetIgnoreParentAlpha fun(self: region, ignore: boolean)
---@class animationgroup : uiobject
---@field CreateAnimation fun(self: animationgroup, animationType: animationtype, name: string|nil, inheritsFrom: string|nil) : animation
---@field GetAnimation fun(self: animationgroup, name: string) : animation
---@field GetAnimations fun(self: animationgroup) : table
---@field GetDuration fun(self: animationgroup) : number
---@field GetEndDelay fun(self: animationgroup) : number
---@field GetLoopState fun(self: animationgroup) : boolean
---@field GetScript fun(self: animationgroup, event: string) : function
---@field GetSmoothProgress fun(self: animationgroup) : boolean
---@field IsDone fun(self: animationgroup) : boolean
---@field IsPaused fun(self: animationgroup) : boolean
---@field IsPlaying fun(self: animationgroup) : boolean
---@field Pause fun(self: animationgroup)
---@field Play fun(self: animationgroup)
---@field Resume fun(self: animationgroup)
---@field SetDuration fun(self: animationgroup, duration: number)
---@field SetEndDelay fun(self: animationgroup, delay: number)
---@field SetLooping fun(self: animationgroup, loop: animloopmode)
---@field SetScript fun(self: animationgroup, event: string, handler: function|nil) "OnEvent"|"OnShow"
---@field SetSmoothProgress fun(self: animationgroup, smooth: animsmoothing)
---@field Stop fun(self: animationgroup)
---@class animation : uiobject
---@field GetDuration fun(self: animation) : number
---@field GetEndDelay fun(self: animation) : number
---@field GetOrder fun(self: animation) : number
---@field GetScript fun(self: animation, event: string) : function
---@field GetSmoothing fun(self: animation) : string
---@field IsDone fun(self: animation) : boolean
---@field IsPaused fun(self: animation) : boolean
---@field IsPlaying fun(self: animation) : boolean
---@field Pause fun(self: animation)
---@field Play fun(self: animation)
---@field Resume fun(self: animation)
---@field SetDuration fun(self: animation, duration: number)
---@field SetStartDelay fun(self: animation, delay: number)
---@field SetEndDelay fun(self: animation, delay: number)
---@field SetOrder fun(self: animation, order: number)
---@field SetScript fun(self: animation, event: string, handler: function?)
---@field SetSmoothing fun(self: animation, smoothing: string)
---@field Stop fun(self: animation)
---@field CreateControlPoint fun(self: animation) : pathcontrolpoint
---@field SetCurveType fun(self: animation, curveType:pathanimationtype)
---@field GetCurveType fun(self: animation) : pathanimationtype
---@field GetControlPoints fun(self: animation) : pathcontrolpoint[]
---@field GetMaxControlPointOrder fun(self: animation) : number
---@field SetFromAlpha fun(self: animation, alpha: number)
---@field SetToAlpha fun(self: animation, alpha: number)
---@field SetScaleFrom fun(self: animation, x: number, y: number)
---@field SetScaleTo fun(self: animation, x: number, y: number)
---@field SetFromScale fun(self: animation, x: number, y: number)
---@field SetToScale fun(self: animation, x: number, y: number)
---@field SetOrigin fun(self: animation, point: anchorpoint, x: number, y: number)
---@field SetDegrees fun(self: animation, degrees: number)
---@field SetOffset fun(self: animation, x: number, y: number)
---@field SetStartColor fun(self: animation, r: red|number, g: green|number, b: blue|number, a: alpha|number|nil)
---@field SetEndColor fun(self: animation, r: red|number, g: green|number, b: blue|number, a: alpha|number|nil)
---@alias pathanimationtype
---| "LINEAR"
---| "SMOOTH"
---@class pathcontrolpoint : animation
---@field SetOffset fun(self: pathcontrolpoint, offsetX: number, offsetY: number)
---@field GetOffset fun(self: pathcontrolpoint) : number, number
---@field SetOrder fun(self: pathcontrolpoint, order: number)
---@field GetOrder fun(self: pathcontrolpoint) : number
---@field SetParent fun(self: pathcontrolpoint, parent: uiobject, order: number?)
---@class line : uiobject
---@field GetEndPoint fun(self: line) : relativePoint: anchorpoint, relativeTo: anchorpoint, offsetX: number, offsetY: number
---@field GetStartPoint fun(self: line) : relativePoint: anchorpoint, relativeTo: anchorpoint, offsetX: number, offsetY: number
---@field GetThickness fun(self: line) : number
---@field SetStartPoint fun(self: line, point: anchorpoint, relativeFrame: uiobject|number, relativePoint: anchorpoint|number, xOffset: number?, yOffset: number?)
---@field SetEndPoint fun(self: line, point: anchorpoint, relativeFrame: uiobject|number, relativePoint: anchorpoint|number, xOffset: number?, yOffset: number?)
---@field SetColorTexture fun(self: line, red: number, green: number, blue: number, alpha: number?)
---@field SetThickness fun(self: line, thickness: number)
---@class frame : uiobject
---@field __background texture
---@field CreateLine fun(self: frame, name: string?, drawLayer: drawlayer, templateName: string?, subLevel: number?) : line
---@field SetID fun(self: frame, id: number) set an ID for the frame
---@field SetAttribute fun(self: frame, name: string, value: any)
---@field SetScript fun(self: frame, event: string, handler: function?)
---@field GetScript fun(self: frame, event: string) : function
---@field SetFrameStrata fun(self: frame, strata: framestrata)
---@field SetFrameLevel fun(self: frame, level: number)
---@field SetClampedToScreen fun(self: frame, clamped: boolean)
---@field SetClampRectInsets fun(self: frame, left: number, right: number, top: number, bottom: number)
---@field SetMovable fun(self: frame, movable: boolean)
---@field SetUserPlaced fun(self: frame, userPlaced: boolean)
---@field SetBackdrop fun(self: frame, backdrop: backdrop|table)
---@field SetBackdropColor fun(self: frame, red: red|number, green: green|number, blue: blue|number, alpha: alpha|number?)
---@field SetBackdropBorderColor fun(self: frame, red: red|number, green: green|number, blue: blue|number, alpha: alpha|number?)
---@field GetBackdrop fun(self: frame) : backdrop
---@field GetBackdropColor fun(self: frame) : red|number, green|number, blue|number, alpha|number
---@field GetBackdropBorderColor fun(self: frame) : red|number, green|number, blue|number, alpha|number
---@field SetHitRectInsets fun(self: frame, left: number, right: number, top: number, bottom: number)
---@field SetToplevel fun(self: frame, toplevel: boolean)
---@field SetPropagateKeyboardInput fun(self: frame, propagate: boolean)
---@field SetPropagateGamepadInput fun(self: frame, propagate: boolean)
---@field SetMouseClickEnabled fun(self: frame, enabled: boolean)
---@field StartMoving fun(self: frame)
---@field IsMovable fun(self: frame) : boolean
---@field IsMouseEnabled fun(self: frame) : boolean
---@field StartSizing fun(self: frame, sizingpoint: sizingpoint?)
---@field StopMovingOrSizing fun(self: frame)
---@field GetAttribute fun(self: frame, name: string) : any
---@field GetFrameLevel fun(self: frame) : number
---@field GetFrameStrata fun(self: frame) : framestrata
---@field GetNumChildren fun(self: frame) : number
---@field GetNumPoints fun(self: frame) : number
---@field GetNumRegions fun(self: frame) : number
---@field GetName fun(self: frame) : string
---@field GetChildren fun(self: frame) : frame[]
---@field GetRegions fun(self: frame) : region[]
---@field CreateTexture fun(self: frame, name: string?, layer: drawlayer, inherits: string?, subLayer: number?) : texture
---@field CreateMaskTexture fun(self: frame, name: string?, layer: drawlayer?, inherits: string?, subLayer: number?) : texture
---@field CreateFontString fun(self: frame, name: string?, layer: drawlayer, inherits: string?, subLayer: number?) : fontstring
---@field EnableMouse fun(self: frame, enable: boolean) enable mouse interaction
---@field SetResizable fun(self: frame, enable: boolean) enable resizing of the frame
---@field EnableMouseWheel fun(self: frame, enable: boolean) enable mouse wheel scrolling
---@field RegisterForDrag fun(self: frame, button: string) register the frame for drag events, allowing it to be dragged by the mouse
---@field Raise fun() raise the frame to the top of its strata
---@field SetResizeBounds fun(self: frame, minWidth: number, minHeight: number, maxWidth: number, maxHeight: number) set the minimum and maximum size of the frame
---@field RegisterEvent fun(self: frame, event: string) register for an event, trigers "OnEvent" script when the event is fired
---@field RegisterUnitEvent fun(self: frame, event: string, unitId: unit) register for an event, trigers "OnEvent" only if the event occurred for the registered unit
---@field UnregisterEvent fun(self: frame, event: string) unregister for an event
---@field HookScript fun(self: frame, event: string, handler: function) run a function after the frame's script has been executed, carrying the same arguments
---@field CanChangeProtectedState fun(self: frame) : boolean
---@field CollapsesLayout fun(self: frame) : boolean
---@field EnableMouseMotion fun(self: frame, enable: boolean)
---@field GetBottom fun(self: frame) : number
---@field GetCenter fun(self: frame) : number, number
---@field GetHeight fun(self: frame, ignoreRect: boolean?) : number
---@field GetLeft fun(self: frame) : number
---@field GetRect fun(self: frame) : number, number, number, number
---@field GetRight fun(self: frame) : number
---@field GetScaledRect fun(self: frame) : number, number, number, number
---@field GetSize fun(self: frame, ignoreRect: boolean?) : number, number
---@field GetSourceLocation fun(self: frame) : string
---@field GetTop fun(self: frame) : number
---@field GetWidth fun(self: frame, ignoreRect: boolean?) : number
---@field Hide fun(self: frame)
---@field IsCollapsed fun(self: frame) : boolean
---@field SetCollapsesLayout fun(self: frame, collapsesLayout: boolean)
---@field IsAnchoringRestricted fun(self: frame) : boolean
---@field IsDragging fun(self: frame) : boolean
---@field IsMouseClickEnabled fun(self: frame) : boolean
---@field IsMouseMotionEnabled fun(self: frame) : boolean
---@field IsMouseMotionFocus fun(self: frame) : boolean
---@field IsMouseOver fun(self: frame, offsetTop: number?, offsetBottom: number?, offsetLeft: number?, offsetRight: number?) : boolean
---@field IsMouseWheelEnabled fun(self: frame) : boolean
---@field IsProtected fun(self: frame) : boolean, boolean
---@field IsRectValid fun(self: frame) : boolean
---@field IsShown fun(self: frame) : boolean
---@field IsVisible fun(self: frame) : boolean
---@field SetMouseMotionEnabled fun(self: frame, enabled: boolean)
---@field SetParent fun(self: frame, parent: frame?)
---@field SetPassThroughButtons fun(self: frame, button1: string?, ...)
---@field SetPropagateMouseClicks fun(self: frame, propagate: boolean)
---@field SetPropagateMouseMotion fun(self: frame, propagate: boolean)
---@field SetShown fun(self: frame, show: boolean)
---@field Show fun(self: frame)
---@field AdjustPointsOffset fun(self: frame, x: number, y: number)
---@field ClearAllPoints fun(self: frame)
---@field ClearPoint fun(self: frame, point: string)
---@field ClearPointsOffset fun(self: frame)
---@field GetPoint fun(self: frame, anchorIndex: number?, resolveCollapsed: boolean?) : string, frame, string, number, number
---@field GetPointByName fun(self: frame, point: string, resolveCollapsed: boolean?) : string, frame, string, number, number
---@field SetAllPoints fun(self: frame, relativeTo: uiobject?, doResize: boolean?)
---@field SetHeight fun(self: frame, height: number)
---@field SetSize fun(self: frame, x: number, y: number)
---@field SetWidth fun(self: frame, width: number)
---@field CreateAnimationGroup fun(self: frame, name: string?, templateName: string?) : animationgroup
---@field GetAnimationGroups fun(self: frame) : animationgroup[]
---@field StopAnimating fun(self: frame)
---@class cooldown : frame
---@field Clear fun(self: cooldown)
---@field GetCooldownDuration fun(self: cooldown) : number @returns duration
---@field GetCooldownTimes fun(self: cooldown) : number, number @returns startTime, duration
---@field GetCooldownDisplayDuration fun(self: cooldown) : number @returns duration
---@field GetDrawBling fun(self: cooldown) : boolean @returns drawBling
---@field GetDrawEdge fun(self: cooldown) : boolean @returns drawEdge
---@field GetDrawSwipe fun(self: cooldown) : boolean @returns drawSwipe
---@field GetEdgeScale fun(self: cooldown) : number @returns scale
---@field GetReverse fun(self: cooldown) : boolean @returns reverse
---@field GetRotation fun(self: cooldown) : number @returns radians
---@field IsPaused fun(self: cooldown) : boolean
---@field Pause fun(self: cooldown)
---@field Resume fun(self: cooldown)
---@field SetBlingTexture fun(self: cooldown, texture: textureid|texturepath, r: red|number?, g: green|number?, b: blue|number?, a: alpha|number?)
---@field SetCooldown fun(self: cooldown, startTime: gametime, duration: number, modRate: number?) set the cooldown to start at startTime and last for duration seconds
---@field SetCooldownDuration fun(self: cooldown, duration: number, modRate: number?)
---@field SetCooldownUNIX fun(self: cooldown, startTime: unixtime, duration: number, modRate: number?)
---@field SetCountdownAbbrevThreshold fun(self: cooldown, seconds: number)
---@field SetCountdownFont fun(self: cooldown, font: string)
---@field SetDrawBling fun(self: cooldown, draw: boolean)
---@field SetDrawEdge fun(self: cooldown, draw: boolean)
---@field SetDrawSwipe fun(self: cooldown, draw: boolean)
---@field SetEdgeScale fun(self: cooldown, scale: number)
---@field SetEdgeTexture fun(self: cooldown, texture: textureid|texturepath, r: red|number?, g: green|number?, b: blue|number?, a: alpha|number?)
---@field SetHideCountdownNumbers fun(self: cooldown, hide: boolean)
---@field SetReverse fun(self: cooldown, reverse: boolean)
---@field SetRotation fun(self: cooldown, radians: number)
---@field SetSwipeColor fun(self: cooldown, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field SetSwipeTexture fun(self: cooldown, texture: textureid|texturepath, r: red|number?, g: green|number?, b: blue|number?, a: alpha|number?)
---@field SetUseCircularEdge fun(self: cooldown, use: boolean)
---@class button : frame
---@field Click fun(self: button)
---@field SetNormalTexture fun(self: button, texture: textureid|texturepath)
---@field SetPushedTexture fun(self: button, texture: textureid|texturepath)
---@field SetHighlightTexture fun(self: button, texture: textureid|texturepath)
---@field SetDisabledTexture fun(self: button, texture: textureid|texturepath)
---@field SetCheckedTexture fun(self: button, texture: textureid|texturepath)
---@field SetNormalFontObject fun(self: button, fontString: fontstring)
---@field SetHighlightFontObject fun(self: button, fontString: fontstring)
---@field SetDisabledFontObject fun(self: button, fontString: fontstring)
---@field SetText fun(self: button, text: string)
---@field GetText fun(self: button) : string
---@field SetTextInsets fun(self: button, left: number, right: number, top: number, bottom: number)
---@field GetTextInsets fun(self: button) : number, number, number, number
---@field SetDisabledTextColor fun(self: button, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field GetDisabledTextColor fun(self: button) : number, number, number, number
---@field SetFontString fun(self: button, fontString: fontstring)
---@field GetFontString fun(self: button) : fontstring
---@field SetButtonState fun(self: button, state: string, enable: boolean)
---@field GetButtonState fun(self: button, state: string) : boolean
---@field RegisterForClicks fun(self: button, button1: buttontype?, button2: buttontype?, button3: buttontype?, button4: buttontype?)
---@field GetNormalTexture fun(self: button) : texture
---@field GetPushedTexture fun(self: button) : texture
---@field GetHighlightTexture fun(self: button) : texture
---@field GetDisabledTexture fun(self: button) : texture
---@class statusbar : frame
---@field SetStatusBarColor fun(self: statusbar, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field SetStatusBarTexture fun(self: statusbar, path: string|texture)
---@field GetStatusBarTexture fun(self: statusbar) : texture
---@field SetMinMaxValues fun(self: statusbar, minValue: number, maxValue: number)
---@field SetValue fun(self: statusbar, value: number)
---@field SetValueStep fun(self: statusbar, valueStep: number)
---@field SetOrientation fun(self: statusbar, orientation: orientation)
---@field SetReverseFill fun(self: statusbar, reverseFill: boolean)
---@field GetMinMaxValues fun(self: statusbar) : number, number
---@field GetValue fun(self: statusbar) : number
---@field GetValueStep fun(self: statusbar) : number
---@field GetOrientation fun(self: statusbar) : orientation
---@field GetReverseFill fun(self: statusbar) : boolean
---@class scrollframe : frame
---@field SetScrollChild fun(self: scrollframe, child: frame)
---@field GetScrollChild fun(self: scrollframe) : frame
---@field SetHorizontalScroll fun(self: scrollframe, offset: number)
---@field SetVerticalScroll fun(self: scrollframe, offset: number)
---@field GetHorizontalScroll fun(self: scrollframe) : number
---@field GetVerticalScroll fun(self: scrollframe) : number
---@field GetHorizontalScrollRange fun(self: scrollframe) : number
---@field GetVerticalScrollRange fun(self: scrollframe) : number
---@class region : uiobject
---@class fontstring : region
---@field SetDrawLayer fun(self: fontstring, layer: drawlayer, subLayer: number?)
---@field SetFont fun(self: fontstring, font: string, size: number, flags: string)
---@field SetText fun(self: fontstring, text: string|number)
---@field GetText fun(self: fontstring) : string
---@field GetFont fun(self: fontstring) : string, number, string
---@field GetStringWidth fun(self: fontstring) : number return the width of the string in pixels
---@field GetStringHeight fun(self: fontstring) : number return the height of the string in pixels
---@field SetShadowColor fun(self: fontstring, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field GetShadowColor fun(self: fontstring) : number, number, number, number
---@field SetShadowOffset fun(self: fontstring, offsetX: number, offsetY: number)
---@field GetShadowOffset fun(self: fontstring) : number, number
---@field SetTextColor fun(self: fontstring, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field GetTextColor fun(self: fontstring) : number, number, number, number
---@field SetJustifyH fun(self: fontstring, justifyH: justifyh)
---@field GetJustifyH fun(self: fontstring) : string
---@field SetJustifyV fun(self: fontstring, justifyV: justifyv)
---@field GetJustifyV fun(self: fontstring) : string
---@field SetNonSpaceWrap fun(self: fontstring, nonSpaceWrap: boolean)
---@field GetNonSpaceWrap fun(self: fontstring) : boolean
---@field SetIndentedWordWrap fun(self: fontstring, indentedWordWrap: boolean)
---@field GetIndentedWordWrap fun(self: fontstring) : boolean
---@field SetMaxLines fun(self: fontstring, maxLines: number)
---@field GetMaxLines fun(self: fontstring) : number
---@field SetWordWrap fun(self: fontstring, wordWrap: boolean)
---@field GetWordWrap fun(self: fontstring) : boolean
---@field SetSpacing fun(self: fontstring, spacing: number)
---@field GetSpacing fun(self: fontstring) : number
---@field SetLineSpacing fun(self: fontstring, lineSpacing: number)
---@field GetLineSpacing fun(self: fontstring) : number
---@field SetMaxLetters fun(self: fontstring, maxLetters: number)
---@field GetMaxLetters fun(self: fontstring) : number
---@field SetTextInsets fun(self: fontstring, left: number, right: number, top: number, bottom: number)
---@field GetTextInsets fun(self: fontstring) : number, number, number, number
---@field SetTextJustification fun(self: fontstring, justifyH: string, justifyV: string)
---@field GetTextJustification fun(self: fontstring) : string, string
---@field SetTextShadowColor fun(self: fontstring, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field GetTextShadowColor fun(self: fontstring) : number, number, number, number
---@field SetTextShadowOffset fun(self: fontstring, offsetX: number, offsetY: number)
---@field GetTextShadowOffset fun(self: fontstring) : number, number
---@field SetTextShadow fun(self: fontstring, offsetX: number, offsetY: number, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field SetTextTruncate fun(self: fontstring, truncate: string)
---@field GetTextTruncate fun(self: fontstring) : string
---@field SetTextTruncateWidth fun(self: fontstring, width: number)
---@field GetTextTruncateWidth fun(self: fontstring) : number
---@field SetTextTruncateLines fun(self: fontstring, lines: number)
---@field GetTextTruncateLines fun(self: fontstring) : number
---@class texture : region
---@field AddMaskTexture fun(self: texture, maskTexture: texture)
---@field SetDrawLayer fun(self: texture, layer: drawlayer, subLayer: number?)
---@field GetTexture fun(self: texture) : any
---@field SetTexture fun(self: texture, path: textureid|texturepath?, horizontalWrap: texturewrap?, verticalWrap: texturewrap?, filter: texturefilter?)
---@field SetAtlas fun(self: texture, atlas: string, useAtlasSize: boolean?, filterMode: texturefilter?, resetTexCoords: boolean?)
---@field SetColorTexture fun(self: texture, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field SetDesaturated fun(self: texture, desaturate: boolean)
---@field SetDesaturation fun(self: texture, desaturation: number)
---@field SetBlendMode fun(self: texture, mode: blendmode)
---@field SetVertexColor fun(self: texture, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field GetPoint fun(self: texture, index: number) : string, table, string, number, number
---@field SetShown fun(self: texture, state: boolean)
---@field IsShown fun(self: texture) : boolean
---@field GetParent fun(self: texture) : table
---@field SetTexCoord fun(self: texture, left: number, right: number, top: number, bottom: number)
---@field GetTexCoord fun(self: texture) : number, number, number, number
---@field SetRotation fun(self: texture, rotation: number)
---@field GetRotation fun(self: texture) : number
---@field SetRotationRadians fun(self: texture, rotation: number)
---@field GetRotationRadians fun(self: texture) : number
---@field SetRotationDegrees fun(self: texture, rotation: number)
---@field GetRotationDegrees fun(self: texture) : number
---@field SetMask fun(self: texture, mask: table)
---@field GetMask fun(self: texture) : table
---@field SetMaskTexture fun(self: texture, maskTexture: table)
---@field GetMaskTexture fun(self: texture) : table
---@field GetDesaturated fun(self: texture) : boolean
---@field SetGradient fun(self: texture, gradient: string)
---@field GetGradient fun(self: texture) : string
---@field SetGradientAlpha fun(self: texture, gradient: string)
---@field GetGradientAlpha fun(self: texture) : string
---@field SetGradientRotation fun(self: texture, rotation: number)
---@field GetGradientRotation fun(self: texture) : number
---@field SetGradientRotationRadians fun(self: texture, rotation: number)
---@field GetGradientRotationRadians fun(self: texture) : number
---@field SetGradientRotationDegrees fun(self: texture, rotation: number)
---@field GetGradientRotationDegrees fun(self: texture) : number
---@field SetGradientColors fun(self: texture, ...)
---@field GetGradientColors fun(self: texture) : number, number, number, number, number, number, number, number, number, number, number, number
---@field GetBlendMode fun(self: texture) : string
---@field GetVertexColor fun(self: texture) : number, number, number, number
---@field SetHorizTile fun(self: texture, tile: boolean) set the texture to be tiled horizontally
---@field SetVertTile fun(self: texture, tile: boolean) set the texture to be tiled vertically
---@class editbox : frame
---@field SetText fun(self: editbox, text: string)
---@field GetText fun(self: editbox) : string
---@field SetCursorPosition fun(self: editbox, position: number)
---@field GetCursorPosition fun(self: editbox) : number
---@field SetMaxLetters fun(self: editbox, maxLetters: number)
---@field GetMaxLetters fun(self: editbox) : number
---@field SetNumeric fun(self: editbox, numeric: boolean)
---@field GetNumeric fun(self: editbox) : boolean
---@field SetMultiLine fun(self: editbox, multiLine: boolean)
---@field GetMultiLine fun(self: editbox) : boolean
---@field SetAutoFocus fun(self: editbox, autoFocus: boolean)
---@field GetAutoFocus fun(self: editbox) : boolean
---@field SetFont fun(self: editbox, font: string, size: number, flags: string)
---@field SetFontObject fun(self: editbox, fontString: fontstring)
---@field GetFont fun(self: editbox) : string, number, string
---@field ClearFocus fun(self:editbox) clear the editing focus
---@field SetTextColor fun(self: editbox, r: red|number, g: green|number, b: blue|number, a: alpha|number?)
---@field SetJustifyH fun(self:editbox, alignment:string)
---@field SetTextInsets fun(self:editbox, left:number, right:number, top:number, bottom:number)
---@field SetFocus fun(self:editbox, focus:boolean)
---@field HasFocus fun(self:editbox) : boolean return true if the editbox has focus
---@field HighlightText fun(self:editbox, start:number?, finish:number?) select a portion of the text, passing zero will select the entire text
---@class slider : statusbar
---@field Enable fun(self: slider)
---@field Disable fun(self: slider)
---@field SetEnabled fun(self: slider, enable: boolean)
---@field IsEnabled fun(self: slider) : boolean
---@field GetObeyStepOnDrag fun(self: slider) : boolean
---@field GetStepsPerPage fun(self: slider) : number
---@field GetThumbTexture fun(self: slider) : texture
---@field IsDraggingThumb fun(self: slider) : boolean
---@field SetObeyStepOnDrag fun(self: slider, obeyStep: boolean)
---@field SetThumbTexture fun(self: slider, texture: textureid|texturepath)
---@field SetStepsPerPage fun(self: slider, steps: number)
---get all frames under the cursor that has mouse focus
---@return uiobject[]
function GetMouseFoci()
return {}
end
---@return number
function debugprofilestop() return 0 end
INVSLOT_FIRST_EQUIPPED = true
INVSLOT_LAST_EQUIPPED = true
LE_PARTY_CATEGORY_INSTANCE = true
--functions
C_ChatInfo = true
---@class classinfo : table
---@field classID number
---@field className string
---@field classFile string
C_CreatureInfo = {}
---@param classId number
---@return classinfo
function C_CreatureInfo.GetClassInfo(classId) return {} end
C_Item = {}
function C_Item.PickupItem() end
function C_Item.IsBoundToAccountUntilEquip() end
function C_Item.LockItem() end
function C_Item.DoesItemMatchTargetEnchantingSpell() end
function C_Item.IsItemCorruptionRelated() end
---return the item's icon texture
---@param itemInfo number|string
---@return number
function C_Item.GetItemIconByID(itemInfo) return 0 end
---return the item's icon texture
---@param itemLocation table
---@return number
function C_Item.GetItemIcon(itemLocation) return 0 end
function C_Item.ConfirmOnUse() end
function C_Item.GetItemIDForItemInfo() end
function C_Item.IsCorruptedItem() end
function C_Item.GetBaseItemTransmogInfo() end
function C_Item.GetItemMaxStackSize() end
function C_Item.ConfirmNoRefundOnUse() end
function C_Item.GetFirstTriggeredSpellForItem() end
function C_Item.GetItemInventorySlotInfo() end
function C_Item.GetItemNameByID() end
function C_Item.IsItemCorrupted() end
function C_Item.ActionBindsItem() end
function C_Item.GetCurrentItemTransmogInfo() end
function C_Item.RequestLoadItemDataByID() end
function C_Item.GetItemSetInfo() end
function C_Item.GetItemCreationContext() end
function C_Item.IsEquippedItem() end
function C_Item.IsItemDataCachedByID() end
function C_Item.ItemHasRange() end
function C_Item.ConfirmBindOnUse() end
function C_Item.GetItemSpecInfo() end
function C_Item.EndBoundTradeable() end
function C_Item.EndRefund() end
function C_Item.UseItemByName() end
function C_Item.IsDressableItemByID() end
function C_Item.GetItemGUID() end
function C_Item.GetItemInventoryTypeByID() end
function C_Item.UnlockItem() end
function C_Item.RequestLoadItemData() end
function C_Item.IsItemInRange() end
function C_Item.IsItemConvertibleAndValidForPlayer() end
function C_Item.DoesItemExist() end
function C_Item.EquipItemByName() end
function C_Item.ReplaceTradeEnchant() end
function C_Item.UnlockItemByGUID() end
function C_Item.DoesItemExistByID() end
function C_Item.LockItemByGUID() end
function C_Item.GetItemQualityColor() end
function C_Item.GetItemIDByGUID() end
function C_Item.IsLocked() end
function C_Item.GetItemLocation() end
function C_Item.IsItemSpecificToPlayerClass() end
function C_Item.GetItemNumAddedSockets() end
function C_Item.IsItemKeystoneByID() end
function C_Item.IsConsumableItem() end
function C_Item.GetItemStats() end
function C_Item.IsCurioItem() end
function C_Item.GetItemStatDelta() end
function C_Item.IsItemDataCached() end
function C_Item.IsItemConduit() end
function C_Item.GetItemNumSockets() end
function C_Item.GetAppliedItemTransmogInfo() end
function C_Item.IsHelpfulItem() end
function C_Item.GetItemClassInfo() end
function C_Item.GetItemUniquenessByID() end
function C_Item.GetItemGemID() end
function C_Item.IsHarmfulItem() end
function C_Item.DropItemOnUnit() end
---@param itemInfo number|string
---@return number actualItemLevel
---@return number previewLevel
---@return number sparseItemLevel
function C_Item.GetDetailedItemLevelInfo(itemInfo) return 0, 0, 0 end