import { ComputedRef, Ref } from 'vue'; export declare enum SizeDimension { Width = "width", Height = "height" } export declare enum SizeMode { Percentage = "percentage", Auto = "auto" } interface Input { /** The element reference to measure */ elementRef?: Ref; /** The dimension to measure ('width' or 'height') */ dimension?: SizeDimension; /** Size calculation mode: 'percentage' uses snapPoint, 'auto' measures content */ mode?: SizeMode; /** When mode is 'percentage', this value (0-1) determines the size as a percentage of viewport */ snapPoint?: number; /** When mode is 'auto', whether to observe content changes */ observeChanges?: boolean; /** Debounce delay in milliseconds for ResizeObserver updates */ debounceDelay?: number; /** Whether the element is currently visible/mounted */ isActive?: boolean | ComputedRef; } interface Return { /** Computed size value (e.g., '50%' or '300px') */ size: ComputedRef; /** Manually trigger a size measurement */ measure: () => void; /** Destroy observers, timers, and reset state */ destroy: () => void; } export declare const useElementSize: ({ elementRef, dimension, mode, snapPoint, observeChanges, debounceDelay, isActive }: Input) => Return; export {};