interface Trackable { on(event: string, ...args: any[]): void; off(event: string, ...args: any[]): void; } declare type EventName = T extends { on(event: infer E, ...args: any[]): any; } ? E : never; /** * Hook which appends event listeners for specified object events and calls * force update. * * @param obj - object which allows events listening. * @param events - events to listen. This array will be memoized during first * hook call. */ export declare function useEventsTracking(obj: T, events: EventName[]): void; export {};