/*!
 * Copyright 2020 VMware, Inc.
 * SPDX-License-Identifier: BSD-2-Clause
 */
import { AfterContentInit, ElementRef, Renderer2 } from '@angular/core';
import { ClrDropdown, ClrDropdownMenu } from '@clr/angular';
/**
 * Directive for ClrDropDown which repositions the drop-down menu dynamically based on the available space.
 *
 * If there is not enough space to show the whole drop-down menu, then leave the default position which is `bottom` and
 * users have to scroll down to access it.
 *
 * @example
 * ```
 * <clr-dropdown vcdDropdown>
 *     <button class="btn btn-link vm-power-link" clrDropdownTrigger>
 *         {{ 'vm.actions' | translate }}
 *         <clr-icon shape="caret down"></clr-icon>
 *         </button>
 *     <clr-dropdown-menu *clrIfOpen>
 *         <label class="dropdown-header">Dropdown header</label>
 *         <button type="button" clrDropdownItem>Action 1</button>
 *         <button type="button" clrDropdownItem>Action 2</button>
 *         <div class="dropdown-divider"></div>
 *         <button type="button" clrDropdownItem>Link 1</button>
 *         <button type="button" clrDropdownItem>Link 2</button>
 *     </clr-dropdown-menu>
 * </clr-dropdown>
 * ```
 */
/**
 * This component is marked as dynamic to suppress the '"strictMetadataEmit": true' error being reported on DI of Document
 */
/** @dynamic */
export declare class DynamicDropdownPositionDirective implements AfterContentInit {
    private elRef;
    private renderer;
    private document;
    private dropDownBtn;
    private parentDropdown;
    private contentAreaElement;
    private dropdownTriggerElement;
    private dropdownMenuElement;
    private dropdownTriggerRect;
    private dropdownMenuRect;
    private isInsideModal;
    set dropdownMenu(dropdown: ClrDropdownMenu);
    constructor(elRef: ElementRef, renderer: Renderer2, document: Document, dropDownBtn: ClrDropdown, parentDropdown: DynamicDropdownPositionDirective);
    ngAfterContentInit(): void;
    private get positionTop();
    private get positionLeft();
    /**
     * Reposition the dropdown element by setting top and left position.
     *
     * Note: The dropdown is position absolute by setting position, top and left properties AND then is position
     * relatively to itself by setting transform: translateX/Y property.
     */
    private resetPosition;
    /**
     * On window resize, close the dropdown when it is open, otherwise we need to recalculate again its position
     * and reposition it, which may not be a good user experience.
     */
    onWindowResize(): void;
}
