import React from 'react';
export interface MagneticEffectConfig {
    strength?: number;
    range?: number;
    scale?: number;
    rotation?: number;
    easing?: string;
    duration?: number;
    enabled?: boolean;
    resetOnLeave?: boolean;
}
export interface MagneticEffectState {
    isActive: boolean;
    distance: number;
    intensity: number;
    transform: {
        x: number;
        y: number;
        scale: number;
        rotation: number;
    };
}
export declare function useMouseMagneticEffect(config?: MagneticEffectConfig): {
    ref: React.RefObject<HTMLElement>;
    state: MagneticEffectState;
    reset: () => void;
    config: {
        strength: number;
        range: number;
        scale: number;
        rotation: number;
        easing: string;
        duration: number;
        enabled: boolean;
        resetOnLeave: boolean;
    };
};
export declare function useMagneticField(config?: MagneticEffectConfig): {
    containerRef: React.RefObject<HTMLElement>;
    registerElement: (id: string, element: HTMLElement) => () => void;
    unregisterElement: (id: string) => void;
    activeElement: string | null;
    resetAll: () => void;
    config: {
        strength: number;
        range: number;
        scale: number;
        rotation: number;
        easing: string;
        duration: number;
        enabled: boolean;
        resetOnLeave: boolean;
    };
};
export declare function useMagneticButton(config?: MagneticEffectConfig & {
    onClick?: () => void;
    disabled?: boolean;
}): {
    handleClick: () => void;
    disabled: boolean;
    ref: React.RefObject<HTMLElement>;
    state: MagneticEffectState;
    reset: () => void;
    config: {
        strength: number;
        range: number;
        scale: number;
        rotation: number;
        easing: string;
        duration: number;
        enabled: boolean;
        resetOnLeave: boolean;
    };
};
//# sourceMappingURL=useMouseMagneticEffect.d.ts.map