import ComponentEvent from "./ComponentEvent"; export declare type AnyFunction = (...args: any[]) => any; export declare type NoArguments = undefined | null | void | never; export declare type EventMap = Record; export declare type EventKey = string & keyof T; export declare type EventHash = Partial<{ [K in EventKey]: EventCallback; }>; export declare type EventCallback, THIS> = T[K] extends NoArguments ? () => any : T[K] extends AnyFunction ? T[K] : T[K] extends ComponentEvent ? (event: ComponentEvent) => any : (event: T[K]) => any; export declare type EventTriggerParams> = T[K] extends NoArguments ? void[] : T[K] extends AnyFunction ? Parameters : [T[K]]; export interface ComponentEventConstructor { new , TYPE extends string = string, THIS = any>(eventType: TYPE, props: PROPS): DefaultProps & PROPS; new (eventType: TYPE): DefaultProps; } export interface DefaultProps { eventType: TYPE; currentTarget: THIS; stop(): void; isCanceled(): boolean; }