import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from "@angular/core";
import * as i0 from "@angular/core";
/**
 * Directive that provides resize event for any element
 *
 * __Usage:__
 *
 * In parent components use this to subscribe to resize event:
 *
 *       `@ViewChild(ResizeDirective) child: ResizeDirective;
 *
 *       public checkResize = () => {
 *
 *       this.child.elementResize.subscribe((event: any) => console.log("change", event));
 *
 *       };`
 *
 * To remove resize event handler:
 *
 *       `@ViewChild(ResizeDirective) child: ResizeDirective;
 *
 *        this.child.removeResize()`
 *
 */
/**
 * <example-url>./../examples/index.html#/resize</example-url>
 */
/**
 * @ignore
 */
export declare class ResizeDirective implements AfterViewInit, OnDestroy {
    private element;
    /**
     * Event to be triggered on element resize
     */
    elementResize: EventEmitter<boolean>;
    /**
     * Class for dimension change detection
     * Using nested private class to prevent external class instantiation.
     */
    private resizeEventQueue;
    constructor(element: ElementRef);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Removes resize listener from the element for public use. We could stop resize event
     * listener by using this method in parent through @ViewChild
     */
    removeResize(): void;
    /**
     * Emits resize event
     */
    private resizeEmit;
    /**
     * Add resize event which will be done by default
     */
    private attachResizeEvent;
    /**
     * Removing resize listener from target element
     */
    private detachResizeEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResizeDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ResizeDirective, "[nuiResize]", never, {}, { "elementResize": "elementResize"; }, never>;
}
