import type { Options } from "./types";
/**
 * Size Observer
 *
 * A light-weight wrapper around the native Resize Observer API
 *
 * ```typescript
 * import { SizeObserver } from "@figliolia/size-observer";
 *
 * const node = document.getElementByID("myDOMNode");
 * const observer = new SizeObserver(node, {
 *  width: true,
 *  height: true,
 *  onChange: ({ height, width }) => {}
 * });
 *
 * // Clean up
 * observer.destroy();
 * ```
 */
export declare class SizeObserver<T extends Element> {
    node: T;
    width: number;
    height: number;
    options: Options;
    observer: ResizeObserver;
    constructor(node: T, options: Options);
    setOptions(options: Options): void;
    private initialize;
    destroy(): void;
    private initializeLayout;
    private parseBlock;
    private emit;
}
