type ExtractArgs = T[keyof T] extends (...args: infer A) => any ? A : any[]; type EventState> = T & { (key?: keyof T, fun?: T[keyof T]): EventState; (target?: Partial): EventState; }; interface WindowSizeState { snapshot: [WindowSizeState]; width: number; height: number; callback(): void; change(): void; mount(): void; clean(): void; } type WindowSizeArg = Partial | WindowSizeState['change']; declare const windowSizeEvent: () => EventState; export { type WindowSizeArg, type WindowSizeState, windowSizeEvent };