import { ObjectDirective } from 'vue';
export type VHoverVariant = 'subtle' | 'default' | 'strong';
/**
 * Value accepted by the `v-hover` directive and {@link bindVHover}.
 */
export type VHoverBindingValue = VHoverVariant | false | null | undefined | {
    /** Overlay tier used when resolving the directive binding. */
    variant: VHoverVariant;
};
/**
 * Resolves a binding value to a concrete overlay variant, or `null` when hover should be disabled.
 * @param value
 */
export declare function resolveVHoverBindingValue(value: VHoverBindingValue): VHoverVariant | null;
/**
 * Removes the hover overlay and `v-hover-root` class from `el`.
 * @param el
 */
export declare function detachVHover(el: HTMLElement): void;
/**
 * Updates the overlay tier on an element that already has a v-hover overlay attached.
 * @param el
 * @param variant
 */
export declare function setVHoverOverlayVariant(el: HTMLElement, variant: VHoverVariant): void;
/**
 * Attaches the v-hover overlay to `el` (replacing any existing one). No-op if `variant` is `null`.
 * @param el
 * @param variant
 */
export declare function attachVHover(el: HTMLElement, variant: VHoverVariant): void;
/**
 * Applies v-hover according to the same rules as the directive: attaches when `value` resolves to a variant, otherwise detaches.
 * @param el
 * @param value
 */
export declare function bindVHover(el: HTMLElement, value: VHoverBindingValue): void;
export declare const vHover: ObjectDirective<HTMLElement, VHoverBindingValue>;
