import { Base } from '@studiometa/js-toolkit'; import type { BaseConfig, BaseProps, PointerServiceProps } from '@studiometa/js-toolkit'; export interface HoverableProps extends BaseProps { $refs: { /** * Target element that will be moved on hover. */ target: HTMLElement; }; $options: { /** * A number between in the range `0–1` used to smoothen the transition between each position. */ sensitivity: number; /** * Wether to reverse the movement of the target or not. */ reversed: boolean; /** * Wether to stop moving the target when the mouse is not over the root element or not. */ contained: boolean; }; } declare const Hoverable_base: import("@studiometa/js-toolkit").BaseDecorator>; /** * Hoverable class. * @link https://ui.studiometa.dev/components/Hoverable/ */ export declare class Hoverable extends Hoverable_base { /** * Config. */ static config: BaseConfig; props: { x: number; y: number; dampedX: number; dampedY: number; }; /** * The hoverable element, defaults to `this.$refs.target`. */ get target(): HTMLElement; /** * The bouding element, defaults to `this.$el`. */ get parent(): HTMLElement; /** * The bounds values in which the target can move. */ get bounds(): { yMin: number; yMax: number; xMin: number; xMax: number; }; /** * Update props when the mouse moves. */ movedrelative({ progress }: PointerServiceProps): void; /** * Update target position on each frame. */ ticked(): () => void; } export {};