import { Ref } from 'vue';
export interface UseResizeObserverOptions {
    onVisibilityChange?: boolean;
    onResize?: boolean;
    immediate?: boolean;
}
export interface ResizeCallbackParams {
    width: number;
    height: number;
    entry: ResizeObserverEntry;
    becameVisible: boolean;
}
export type ResizeCallback = (params: ResizeCallbackParams) => void;
export declare function useResizeObserver(target: Ref<HTMLElement | null | undefined> | HTMLElement | null | undefined, callback: ResizeCallback, options?: UseResizeObserverOptions): {
    isSupported: boolean;
    stop: () => void;
    start: () => void;
};
export declare function useVisibilityObserver(target: Ref<HTMLElement | null | undefined> | HTMLElement | null | undefined, callback: () => void): {
    isSupported: boolean;
    stop: () => void;
    start: () => void;
};
export default useResizeObserver;
