import * as i0 from "@angular/core";
/**
 * Directions for resizing.
 *
 * Horizontal direction (x):
 * - Left: -1
 * - None: 0
 * - Right: 1
 *
 * Vertical direction (y):
 * - Up: -1
 * - None: 0
 * - Down: 1
 */
export type KbqResizerDirection = [x: -1 | 0 | 1, y: -1 | 0 | 1];
/**
 * Event emitted when the size of the resizable element changes.
 */
export type KbqResizerSizeChangeEvent = {
    width: number;
    height: number;
};
/**
 * Directive (container) sets whether the element is resizable.
 *
 * @example
 *
 * ```html
 * <div kbqResizable>
 *     <div [kbqResizer]="[-1, 0]"></div>
 * </div>
 * ```
 */
export declare class KbqResizable {
    /**
     * @docs-private
     */
    readonly element: HTMLElement;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqResizable, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqResizable, "[kbqResizable]", ["kbqResizable"], {}, {}, never, never, true, never>;
}
/**
 * Directive which defines element resizing direction.
 */
export declare class KbqResizer {
    private readonly element;
    private readonly resizable;
    private readonly zone;
    private readonly document;
    private readonly destroyRef;
    private readonly renderer;
    private x;
    private y;
    private width;
    private height;
    /**
     * Direction of element resizing.
     */
    readonly direction: import("@angular/core").InputSignal<KbqResizerDirection>;
    /**
     * Emits the new size of the element after resizing.
     */
    readonly sizeChange: import("@angular/core").OutputEmitterRef<KbqResizerSizeChangeEvent>;
    /**
     * @docs-private
     */
    protected readonly cursor: import("@angular/core").Signal<"default" | "ns-resize" | "ew-resize" | "nwse-resize" | "nesw-resize">;
    constructor();
    private handleElementPointerDown;
    private handleDocumentPointerMove;
    private handleDocumentPointerUp;
    private updateSize;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqResizer, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqResizer, "[kbqResizer]", ["kbqResizer"], { "direction": { "alias": "kbqResizer"; "required": true; "isSignal": true; }; }, { "sizeChange": "sizeChange"; }, never, never, true, never>;
}
