import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChanges } from "@angular/core";
import { IResizeProperties, ResizeDirection, ResizeUnit } from "./public-api";
import { EventBusService } from "../../../services/event-bus.service";
import { UtilService } from "../../../services/util.service";
import * as i0 from "@angular/core";
/**
 * @ignore
 * <example-url>./../examples/index.html#/resizer</example-url>
 */
export declare class ResizerDirective implements AfterViewInit, OnChanges, OnDestroy {
    private elRef;
    private renderer;
    private utilService;
    private _element;
    private ngZone;
    private eventBusService;
    /**
     * Direction in which element can be resizable. can be "top", "right", "left" and "bottom"
     */
    private _direction;
    set resizerDirection(direction: ResizeDirection);
    get resizerDirection(): ResizeDirection;
    /**
     * Sets custom size of resizable element
     */
    protected _size: number;
    /**
     * Disables element resizing
     */
    private _disabled;
    set resizerDisabled(isDisabled: boolean);
    get resizerDisabled(): boolean;
    /**
     * Choose resize value of your element(pixel, percent). By default pixels are used.
     */
    resizerValue: ResizeUnit;
    /**
     * Switch to mode in which resizer change parent's and sibling's flex-basis (layout-specific)
     */
    isMultiple: boolean;
    /**
     * Emits new size of element on which directive was applied
     */
    resizerSizeChanged: EventEmitter<string>;
    protected resizePropObj: IResizeProperties;
    protected parentContainerNode: HTMLElement;
    protected resizerSplit: HTMLElement;
    protected targetElement: ElementRef;
    protected resizeClass: string;
    protected resizeGutter: HTMLElement;
    protected offsetSize: number;
    private _resizeElement;
    private _oldSize;
    private _isDragging;
    private _isFirstTimeInteracting;
    private _isHovering;
    private resizeObserver?;
    private resizeSubscription;
    private eventSubscriptions;
    private mouseUpUnlisten;
    private mouseMoveUnlisten;
    private sibling;
    constructor(elRef: ElementRef, renderer: Renderer2, utilService: UtilService, _element: ElementRef, ngZone: NgZone, eventBusService: EventBusService);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    protected addResizeObserver(): void;
    protected addSubscription(): void;
    protected onSizeChanged(newSize: string): void;
    protected refreshStyle(): void;
    protected unlistenEvents(): void;
    protected appendEvents(): void;
    protected isResizeHorizontal(): boolean;
    protected isAtTheBeginning(): boolean;
    private switchDisabledClasses;
    private appendResizeElement;
    private unlistenResizeEvents;
    private onMouseEnter;
    private onMouseLeave;
    private onMouseMove;
    private onMouseDown;
    private onMouseUp;
    private calculatePosition;
    private applyNewSize;
    private updateSize;
    private calculateNativeElementSize;
    private calculateSiblingSize;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResizerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ResizerDirective, "[nuiResizer]", never, { "resizerDirection": "resizerDirection"; "resizerDisabled": "resizerDisabled"; "resizerValue": "resizerValue"; "isMultiple": "isMultiple"; }, { "resizerSizeChanged": "resizerSizeChanged"; }, never, never, false, never>;
}
