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 KeyState { target: El | Window; pressedKey: string; code: string; event: KeyboardEvent; key(e: KeyState): void; keydown(e: KeyboardEvent): void; mount(el: El): void; clean(el: null): void; ref(el: Element | null): void; } type KeyArg = Partial> | KeyState['key']; declare const keyEvent: (state?: Partial>) => EventState>; export { type KeyArg, type KeyState, keyEvent };