import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import { ResizeStateChangeEventDetail } from './resize-observe-interface';
/**
 * A thin, declarative interface to the [ResizeObserver API](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver).
 *
 * @status stable
 * @version 1.0.0
 *
 * @slot - Main slot for any content.
 * @slot content-fit-x - optional slot (when `notifyContentFit` is set). Shows when content fits / doesn't get cut off
 * @slot content-nofit-x - optional slot (when `notifyContentFit` is set). Shows when content doesn't get cut off
 * @slot content-fit-y - optional slot (when `notifyContentFit` is set). Shows when content fits / doesn't get cut off
 * @slot content-nofit-y - optional slot (when `notifyContentFit` is set). Shows when content doesn't get cut off
 */
export declare class ResizeObserve implements ComponentInterface {
    private ro;
    private appliedStates;
    private isReady;
    host: HTMLNanoResizeObserveElement;
    currentWidth: number;
    currentHeight: number;
    classNames: string[];
    contentFitX: any;
    contentFitY: any;
    classNameChange(): void;
    /** Fire `nanoResizeContentFitChange` events notifying
     * whether content currently fits or does not on the x, y or both axis'.
     * Also makes the `content-fit-...` slots available */
    notifyContentFit: 'x' | 'y' | 'xy';
    /** string list of sizes and optional class-names.
     * Adds class-names and fires nanoResizeStateChange events. Upon hitting breakpoints.
     * Format: `states="800w, 300h class1 class2"` */
    states: string;
    newStatesProp(): void;
    /** A resize break point is switched on or off */
    nanoResizeStateChange: EventEmitter<ResizeStateChangeEventDetail>;
    /** Fires after the initial loading and assessment */
    nanoResizeObserverReady: EventEmitter<void>;
    /** Fires when the content either begins or stops fitting.
     * Will only work when `notifyContentFit` is set. */
    nanoResizeContentFitChange: EventEmitter<{
        x: boolean;
        y: boolean;
    }>;
    /** Fires after any resizing */
    nanoResize: EventEmitter<ResizeObserverEntry[]>;
    dimensionChanged(): void;
    statesChanged(): void;
    private assesContentFit;
    private assessChanges;
    private applyChanges;
    private toSimpleObj;
    private attachRO;
    componentWillLoad(): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    render(): any;
}
