import { ReactNode } from 'react'; 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 WheelState { _active: boolean; active: boolean; _value: Vec2; value: Vec2; delta: Vec2; offset: Vec2; movement: Vec2; target: El; event: Event; timeout: number; clearTimeout(): void; memo: any; isWheelStart: boolean; isWheeling: boolean; isWheelEnd: boolean; wheel(self: WheelState): void; wheelStart(e: Event): void; wheeling(e: Event): void; wheelEnd(e: Event): void; mount(target: El): void; clean(target: null): void; ref(traget: El | null): void; tick?: () => void; } type WheelConfig = Partial> | WheelState['wheel']; declare const useWheel: (config: WheelConfig) => EventState>; interface WheelProps extends Partial> { children: (state: WheelState) => ReactNode; } declare const Wheel: (props: WheelProps) => ReactNode; export { Wheel, type WheelProps, useWheel as default, useWheel };