/*!
 * @license
 * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { Subject } from 'rxjs';
import { IResizeMouseEvent, ResizeEvent } from './types';
import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import * as i0 from "@angular/core";
export declare class ResizableDirective implements OnInit, OnDestroy {
    private readonly renderer;
    private readonly element;
    private readonly zone;
    /**
     * Emitted when the mouse is pressed and a resize event is about to begin.
     */
    resizeStart: EventEmitter<ResizeEvent>;
    /**
     * Emitted when the mouse is dragged after a resize event has started.
     */
    resizing: EventEmitter<ResizeEvent>;
    /**
     * Emitted when the mouse is released after a resize event.
     */
    resizeEnd: EventEmitter<ResizeEvent>;
    /**
     * This is to cover sum of the left and right padding between resize handler and its parent.
     */
    coverPadding: number;
    mouseup: Subject<IResizeMouseEvent>;
    mousedown: Subject<IResizeMouseEvent>;
    mousemove: Subject<IResizeMouseEvent>;
    private readonly pointerDown;
    private readonly pointerMove;
    private readonly pointerUp;
    private startingRect;
    private currentRect;
    private unsubscribeMouseDown?;
    private unsubscribeMouseMove?;
    private unsubscribeMouseUp?;
    private readonly destroyRef;
    constructor(renderer: Renderer2, element: ElementRef<HTMLElement>, zone: NgZone);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private getNewBoundingRectangle;
    private getElementRect;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResizableDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ResizableDirective, "[adf-resizable]", ["adf-resizable"], { "coverPadding": { "alias": "coverPadding"; "required": false; }; }, { "resizeStart": "resizeStart"; "resizing": "resizing"; "resizeEnd": "resizeEnd"; }, never, never, true, never>;
}
