export type ResizeObserverEntry = {
    target: Element;
    contentRect: Readonly<DOMRect>;
};
export type ResizeObserverOptions = {
    box?: "border-box" | "content-box" | "device-pixel-content-box";
};
export type ResizeObserverCallback = (entries: ResizeObserverEntry[], observer: UxpResizeObserver) => void;
export declare class UxpResizeObserver {
    elements: Set<Element>;
    pendingEntries: ResizeObserverEntry[];
    externalObserver: ResizeObserverCallback;
    internalObserver: (this: Element) => void;
    queuedCallback: () => void;
    queuedCallbackId: any;
    constructor(callback: ResizeObserverCallback);
    queueCallback(entry: ResizeObserverEntry): void;
    observe(element: Element, options?: ResizeObserverOptions): void;
    unobserve(element: Element): void;
    disconnect(): void;
}
declare let ResizeObserver: typeof UxpResizeObserver;
declare global {
    interface Window {
        ResizeObserver: typeof ResizeObserver;
    }
}
declare const _default: typeof UxpResizeObserver & {
    new (callback: globalThis.ResizeObserverCallback): ResizeObserver;
    prototype: ResizeObserver;
};
export default _default;
