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; }; type Vec2 = [x: number, y: number]; interface HoverState { _active: boolean; active: boolean; device: 'mouse' | 'pointer' | 'touch'; _value: Vec2; value: Vec2; delta: Vec2; offset: Vec2; movement: Vec2; event: Event; target: El; isHoverStart: boolean; isHovering: boolean; isHoverEnd: boolean; hover: (self: HoverState) => void; hoverStart(e: Event): void; hovering(e: Event): void; hoverEnd(e: Event): void; mount(target: El): void; clean(target?: El): void; ref(target: El | null): void; } type HoverArg = Partial> | HoverState['hover']; declare const EVENT_FOR_HOVER: { touch: { start: string; move: string; end: string; up: string; }; pointer: { start: string; move: string; end: string; up: string; }; mouse: { start: string; move: string; end: string; up: string; }; }; declare const hoverEvent: (state?: Partial>) => EventState>; export { EVENT_FOR_HOVER, type HoverArg, type HoverState, hoverEvent };