declare class MagneticHover {
    constructor(selector: string | Element, options?: MagneticHoverOptions);

    start(): void;
    stop(): void;
    restart(): void;
    updateOptions(newOptions: Partial<MagneticHoverOptions>): void;
    destroy(): void;

    static readonly version: string;
}

interface MagneticHoverOptions {
    /** Maximum X scale factor (stretch) */
    maxScaleX?: number;
    /** Minimum X scale factor */
    minScaleX?: number;
    /** Maximum Y scale factor (normal height) */
    maxScaleY?: number;
    /** Minimum Y scale factor (compress) */
    minScaleY?: number;
    /** Maximum text stroke width (em) */
    maxStroke?: number;
    /** Minimum text stroke width (em) */
    minStroke?: number;
    /** Maximum padding-inline (em) */
    maxPaddingInline?: number;
    /** Minimum padding-inline (em) */
    minPaddingInline?: number;
    /** Effect radius (pixels) */
    effectRadius?: number;
    /** Smoothing factor (0-1) */
    smoothing?: number;
    /** Character class name */
    charClassName?: string;
    /** Throttle delay (milliseconds) */
    throttleDelay?: number;
}

export = MagneticHover;
export as namespace MagneticHover;