import { Generic } from "cmf.core/src/core"; import * as ng from "@angular/core"; import "node_modules/element-resize-detector/dist/element-resize-detector.min"; import { ElementQuerySize } from "./elementQueryUtils"; export { ElementQuerySize }; /** * Element Query Directive * * This directive detects element size changes and updates its 'cmf-height' and 'cmf-width' attributes accordingly. * * ## Inputs * `boolean` : **runOutsideAngularZone** - If the elementQuery is to emit the change event outside the Angular Zone. Defaults to false. * */ export declare class ElementQuery extends Generic implements ng.OnInit, ng.OnDestroy { private _elementRef; private _ngZone; private _resizeObserver; private _elementQueryDetector; private _sizeChangeEmitter; private _sizeChangeStartEmitter; private _height; private _width; private _currentSize; /** * The current size values of the HTMLElement */ private _currentSizeRaw; private resizing; private onResizeHandler_ResizeObserver_Start; private onResizeHandler_ResizeObserver_End; private onResizeHandler_ElementQuery_Start; private onResizeHandler_ElementQuery_End; /** * If the sizechange event is emitted outside the angular zone. Defaults to false. */ runOutsideAngularZone: boolean; /** * Gets the current size of this element */ readonly currentSize: { height: ElementQuerySize; width: ElementQuerySize; }; readonly sizeChangeStartEvent: ng.EventEmitter; readonly sizeChangeEvent: ng.EventEmitter; constructor(_elementRef: ng.ElementRef, _ngZone: ng.NgZone); /** * Handle the resize start event. * @param element HTMLElement suffering the resize */ private onResizeStartHandler; /** * Handle the resize event. * @param element HTMLElement suffering the resize */ private onResizeHandler; /** * On int */ ngOnInit(): void; /** * On Destroy */ ngOnDestroy(): void; /** * Force the resize handler to run */ triggerElementQuery(): void; } export interface OnSizeChangeArgs { previousValue: { height: ElementQuerySize; width: ElementQuerySize; }; currentValue: { height: ElementQuerySize; width: ElementQuerySize; }; currentValueRaw: { height: number; width: number; }; } export declare class ElementQueryModule { }