import { Ref, ShallowRef } from 'vue';
export type ElementOrRef = string | Element | null | undefined;
export interface UseElementRectOptions {
    immediate?: boolean;
    resizeObserver?: boolean;
}
export interface ElementRect {
    top: number;
    bottom: number;
    left: number;
    right: number;
    width: number;
    height: number;
}
declare function resolveElement(element: ElementOrRef): HTMLElement | null;
declare function getElementRect(element: HTMLElement): ElementRect;
export default function useElementRect(element: Ref<ElementOrRef> | ElementOrRef, options?: UseElementRectOptions): {
    element: ShallowRef<HTMLElement | null>;
    rect: Ref<ElementRect>;
    updateElement: () => void;
};
export declare function useElementHeight(target: Ref<HTMLElement | undefined>, options?: UseElementRectOptions): {
    height: Ref<() => number, () => number>;
    calculateHeight: () => void;
};
export { resolveElement, getElementRect };
