import type { ComponentPublicInstance, Ref } from '@vue/composition-api';
export declare const defaultWindow: Window & typeof globalThis;
export interface ConfigurableWindow {
    window?: Window;
}
export interface MutationObserverOptions extends MutationObserverInit, ConfigurableWindow {
}
export declare type MaybeRef<T> = T | Ref<T>;
export declare type VueInstance = ComponentPublicInstance;
export declare type MaybeElementRef<T extends MaybeElement = MaybeElement> = MaybeRef<T>;
export declare type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;
export declare type UnRefElementReturn<T extends MaybeElement = MaybeElement> = T extends VueInstance ? Exclude<MaybeElement, VueInstance> : T | undefined;
export declare type Fn = () => void;
export declare function unrefElement<T extends MaybeElement>(elRef: MaybeElementRef<T>): UnRefElementReturn<T>;
export declare function tryOnScopeDispose(fn: Fn): boolean;
export declare function useMutationObserver(target: MaybeElementRef, callback: MutationCallback, options?: MutationObserverOptions): {
    isSupported: boolean;
    stop: () => void;
};
export declare type UseMutationObserverReturn = ReturnType<typeof useMutationObserver>;
