@@ -29,6 +29,20 @@ declare namespace GameEvents {
29
29
: InferCustomGameEventType < T , TUntyped > ;
30
30
}
31
31
32
+ declare namespace PanoramaEvents {
33
+ type PanoramaEventName = keyof PanoramaEvent ;
34
+ type InferPanoramaEventParams < T extends string , TUntyped > = T extends PanoramaEventName
35
+ ? PanoramaEvent [ T ] extends ( ...args : infer P ) => void
36
+ ? P | [ PanelBase , ...P ]
37
+ : TUntyped
38
+ : TUntyped ;
39
+ type InferPanoramaCallback < T extends string > = T extends PanoramaEventName
40
+ ? PanoramaEvent [ T ] extends ( ...args : infer P ) => void
41
+ ? ( ...args : P ) => void
42
+ : ( ...args : any [ ] ) => void
43
+ : ( ...args : any [ ] ) => void ;
44
+ }
45
+
32
46
interface CDOTA_PanoramaScript_GameEvents {
33
47
/**
34
48
* Subscribe to a game event.
@@ -1972,10 +1986,16 @@ interface DollarStatic {
1972
1986
GetContextPanel ( ) : Panel ;
1973
1987
Schedule ( time : number , callback : ( ) => void ) : ScheduleID ;
1974
1988
CancelScheduled ( scheduledEvent : ScheduleID ) : void ;
1975
- DispatchEvent ( event : string , panelID ?: string , ...args : any [ ] ) : void ;
1976
- DispatchEvent ( event : string , panel : PanelBase , ...args : any [ ] ) : void ;
1977
- DispatchEventAsync ( delay : number , event : string , panelID ?: string , ...args : any [ ] ) : void ;
1978
- DispatchEventAsync ( delay : number , event : string , panel : PanelBase , ...args : any [ ] ) : void ;
1989
+
1990
+ DispatchEvent < E extends PanoramaEvents . PanoramaEventName | string > (
1991
+ eventName : E extends PanoramaEvents . PanoramaEventName ? E : string ,
1992
+ ...args : PanoramaEvents . InferPanoramaEventParams < E , any [ ] >
1993
+ ) : void ;
1994
+ DispatchEventAsync < E extends PanoramaEvents . PanoramaEventName | string > (
1995
+ eventName : E extends PanoramaEvents . PanoramaEventName ? E : string ,
1996
+ ...args : PanoramaEvents . InferPanoramaEventParams < E , any [ ] >
1997
+ ) : void ;
1998
+
1979
1999
Language ( ) : string ;
1980
2000
/**
1981
2001
* Localize a string. Optionally accepts Quantity, Precision, and Panel arguments.
@@ -1986,18 +2006,16 @@ interface DollarStatic {
1986
2006
* @deprecated
1987
2007
*/
1988
2008
LocalizePlural ( token : string , value : number , parent ?: PanelBase ) : string ;
1989
- RegisterEventHandler (
1990
- event : 'DragStart' ,
1991
- parent : PanelBase ,
1992
- handler : ( panelID : string , settings : DragSettings ) => boolean ,
1993
- ) : void ;
1994
- RegisterEventHandler (
1995
- event : 'DragEnd' | 'DragDrop' | 'DragEnter' | 'DragLeave' ,
1996
- parent : PanelBase ,
1997
- handler : ( panelID : string , dragged : Panel ) => boolean ,
2009
+
2010
+ RegisterEventHandler < E extends PanoramaEvents . PanoramaEventName | string > (
2011
+ eventName : E extends PanoramaEvents . PanoramaEventName ? E : string ,
2012
+ panel : PanelBase | string ,
2013
+ callback : PanoramaEvents . InferPanoramaCallback < E > ,
1998
2014
) : void ;
1999
- RegisterEventHandler ( event : string , parent : PanelBase , handler : ( ...args : any [ ] ) => void ) : void ;
2000
- RegisterForUnhandledEvent ( event : string , handler : ( ...args : any [ ] ) => void ) : UnhandledEventListenerID ;
2015
+ RegisterForUnhandledEvent < E extends PanoramaEvents . PanoramaEventName | string > (
2016
+ eventName : E extends PanoramaEvents . PanoramaEventName ? E : string ,
2017
+ callback : PanoramaEvents . InferPanoramaCallback < E > ,
2018
+ ) : UnhandledEventListenerID ;
2001
2019
UnregisterForUnhandledEvent ( event : string , handle : UnhandledEventListenerID ) : void ;
2002
2020
Each < T > ( list : T [ ] , callback : ( item : T , index : number ) => void ) : void ;
2003
2021
Each < T > ( map : { [ key : string ] : T } , callback : ( value : T , key : string ) => void ) : void ;
0 commit comments