import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { CSSResultGroup } from 'lit';

/**
 * @summary The Resize Observer component offers a thin, declarative interface to the [`ResizeObserver API`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver).
 *
 * @description The resize observer will report changes to the dimensions of the elements it wraps through the `cx-resize` event.
 * When emitted, a collection of [`ResizeObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry) objects will be attached to `event.detail`
 * that contains the target element and information about its dimensions.
 *
 * @slot (default) - One or more elements to watch for resizing.
 *
 * @event {{ entries: ResizeObserverEntry[] }} cx-resize - Emitted when the element is resized.
 */
export default class CxResizeObserver extends CortexElement {
    static styles: CSSResultGroup;
    private resizeObserver;
    private observedElements;
    /** Disables the observer. */
    disabled: boolean;
    connectedCallback(): void;
    disconnectedCallback(): void;
    private handleSlotChange;
    private startObserver;
    private stopObserver;
    handleDisabledChange(): void;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-resize-observer': CxResizeObserver;
    }
}
