import { DropDownButton } from './../index';
import { Animation, DropDownButtonPosition, DropDownOpenMode, DropDownPosition, HorizontalScrollBarVisibility, ResizeMode, VerticalScrollBarVisibility } from './../index';
import { AfterViewInit, ElementRef, OnInit, OnChanges, OnDestroy, SimpleChanges, EventEmitter } from '@angular/core';
import { BaseElement } from './smart.element';
import * as i0 from "@angular/core";
export { Animation, DropDownButtonPosition, DropDownOpenMode, DropDownPosition, HorizontalScrollBarVisibility, ResizeMode, VerticalScrollBarVisibility, ElementRenderMode } from './../index';
export { Smart } from './smart.element';
export { DropDownButton } from './../index';
export declare class DropDownButtonComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges {
    constructor(ref: ElementRef<DropDownButton>);
    private eventHandlers;
    nativeElement: DropDownButton;
    /** @description Creates the component on demand.
     * @param properties An optional object of properties, which will be added to the template binded ones.
     */
    createComponent(properties?: {}): any;
    /** @description Sets or gets the animation mode. Animation is disabled when the property is set to 'none' */
    get animation(): Animation | string;
    set animation(value: Animation | string);
    /** @description Determines the delay before the opened drop down closes when dropDownOpenMode is set to 'auto'. */
    get autoCloseDelay(): number;
    set autoCloseDelay(value: number);
    /** @description Enables or disables the element. */
    get disabled(): boolean;
    set disabled(value: boolean);
    /** @description Sets the parent container of the dropDown (the popup). Used when a CSS property of unknowned parent is interfering with the visibility of the dropDown. */
    get dropDownAppendTo(): string;
    set dropDownAppendTo(value: string);
    /** @description Determines the position of the drop down button. */
    get dropDownButtonPosition(): DropDownButtonPosition | string;
    set dropDownButtonPosition(value: DropDownButtonPosition | string);
    /** @description Sets the height of the drop down. Default value of empty string means that CSS variables are used. This property should be used when the browser doesn't support CSS variables. */
    get dropDownHeight(): string | number;
    set dropDownHeight(value: string | number);
    /** @description Sets the max height of the drop down. Default value of empty string means that CSS variables are used. This property should be used when the browser doesn't support CSS variables. */
    get dropDownMaxHeight(): string | number;
    set dropDownMaxHeight(value: string | number);
    /** @description Sets the max width of the drop down. Default value of empty string means that CSS variables are used. This property should be used when the browser doesn't support CSS variables. */
    get dropDownMaxWidth(): string | number;
    set dropDownMaxWidth(value: string | number);
    /** @description Sets the min height of the drop down. Default value of empty string means that CSS variables are used. This property should be used when the browser doesn't support CSS variables. */
    get dropDownMinHeight(): string | number;
    set dropDownMinHeight(value: string | number);
    /** @description Sets the min width of the drop down. Default value of empty string means that CSS variables are used. This property should be used when the browser doesn't support CSS variables. */
    get dropDownMinWidth(): string | number;
    set dropDownMinWidth(value: string | number);
    /** @description Determines how the drop down is going to open. */
    get dropDownOpenMode(): DropDownOpenMode | string;
    set dropDownOpenMode(value: DropDownOpenMode | string);
    /** @description If this property is enabled, when the element's dropdown is opened, a transparent overlay is positioned between the dropdown and the rest of the document. */
    get dropDownOverlay(): boolean;
    set dropDownOverlay(value: boolean);
    /** @description Sets a placeholder text to appear when there is no content inside the dropdown. */
    get dropDownPlaceholder(): string;
    set dropDownPlaceholder(value: string);
    /** @description Determines the vertical position of the dropDown. 'Auto' means its automatically determined depending on the viewport size. */
    get dropDownPosition(): DropDownPosition | string;
    set dropDownPosition(value: DropDownPosition | string);
    /** @description Sets the width of the drop down. Default value of empty string means that CSS variables are used. This property should be used when the browser doesn't support CSS variables. */
    get dropDownWidth(): string | number;
    set dropDownWidth(value: string | number);
    /** @description Sets additional helper text below the element. The hint is visible only when the element is focused. */
    get hint(): string;
    set hint(value: string);
    /** @description Determines the visibility of the horizontal Scroll bar inside the drop down. */
    get horizontalScrollBarVisibility(): HorizontalScrollBarVisibility | string;
    set horizontalScrollBarVisibility(value: HorizontalScrollBarVisibility | string);
    /** @description Sets a label above the element. The label is always visible. */
    get label(): string;
    set label(value: string);
    /** @description Sets or gets the unlockKey which unlocks the product. */
    get unlockKey(): string;
    set unlockKey(value: string);
    /** @description Sets or gets the language. Used in conjunction with the property messages.  */
    get locale(): string;
    set locale(value: string);
    /** @description Callback used to customize the format of the messages that are returned from the Localization Module. */
    get localizeFormatFunction(): any;
    set localizeFormatFunction(value: any);
    /** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale.  */
    get messages(): any;
    set messages(value: any);
    /** @description Determines whether the popup is opened or closed */
    get opened(): boolean;
    set opened(value: boolean);
    /** @description Determines the element's placeholder, displayed in the element's action button container. */
    get placeholder(): string;
    set placeholder(value: string);
    /** @description Determines the element's placeholder template, displayed in the element's action button container. You can pass 'string', 'function' or HTMLTemplateElement as a value. */
    get placeholderTemplate(): any;
    set placeholderTemplate(value: any);
    /** @description Disables user interaction with the element. */
    get readonly(): boolean;
    set readonly(value: boolean);
    /** @description Determines whether the resize indicator in the bottom right corner is visible or not. */
    get resizeIndicator(): boolean;
    set resizeIndicator(value: boolean);
    /** @description Determines whether the dropDown can be resized or not. When resizing is enabled, a resize bar appears on the top/bottom side of the drop down. */
    get resizeMode(): ResizeMode | string;
    set resizeMode(value: ResizeMode | string);
    /** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */
    get rightToLeft(): boolean;
    set rightToLeft(value: boolean);
    /** @description Determines the theme. Theme defines the look of the element */
    get theme(): string;
    set theme(value: string);
    /** @description If is set to true, the element cannot be focused. */
    get unfocusable(): boolean;
    set unfocusable(value: boolean);
    /** @description Determines the visibility of the vertical scroll bar. */
    get verticalScrollBarVisibility(): VerticalScrollBarVisibility | string;
    set verticalScrollBarVisibility(value: VerticalScrollBarVisibility | string);
    /** @description This event is triggered when user clicks on the action button. The action button is visible when the placeholder is set.
    *  @param event. The custom event. 	*/
    onActionButtonClick: EventEmitter<CustomEvent>;
    /** @description This event is triggered when the drop down is closed.
    *  @param event. The custom event. 	*/
    onClose: EventEmitter<CustomEvent>;
    /** @description This event is triggered when the drop down list is about to be closed. This event allows to cancel the closing operation calling event.preventDefault() in the event handler function.
    *  @param event. The custom event. 	*/
    onClosing: EventEmitter<CustomEvent>;
    /** @description This event is triggered when user clicks on the drop down button.
    *  @param event. The custom event. 	*/
    onDropDownButtonClick: EventEmitter<CustomEvent>;
    /** @description This event is triggered when the drop down is opened.
    *  @param event. The custom event. 	*/
    onOpen: EventEmitter<CustomEvent>;
    /** @description This event is triggered when the drop down is about to be opened. This event allows to cancel the opening operation calling event.preventDefault() in the event handler function.
    *  @param event. The custom event. 	*/
    onOpening: EventEmitter<CustomEvent>;
    /** @description This event is triggered when user starts resizing the drop down.
    *  @param event. The custom event. 	Custom event was created with: event.detail(	position)
    *   position - An object containing the current left and top positions of the drop down.
    */
    onResizeStart: EventEmitter<CustomEvent>;
    /** @description This event is triggered when user finishes resizing the drop down.
    *  @param event. The custom event. 	Custom event was created with: event.detail(	position)
    *   position - An object containing the current left and top positions of the drop down.
    */
    onResizeEnd: EventEmitter<CustomEvent>;
    /** @description Appends a new HTML node to the drop down.
    * @param {Node} node. The node to be appended
    * @returns {Node}
  */
    appendChildAsync(node: any): Promise<any>;
    appendChild(node: any): Node;
    /** @description Closes the dropDown.
    */
    close(): void;
    /** @description Opens the dropDown.
    */
    open(): void;
    /** @description Removes everything from the drop down.
    */
    removeAll(): void;
    /** @description Removes a child node from the drop down.
    * @param {Node} node. The node to remove.
    * @returns {Node}
  */
    removeChildAsync(node: any): Promise<any>;
    removeChild(node: any): Node;
    /** @description Scrolls the drop down to a specific position.
    * @param {number} top. Y axis coordinate
    * @param {number} left. X axis coordinate
    */
    scrollTo(top: number, left: number): void;
    get isRendered(): boolean;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /** @description Add event listeners. */
    private listen;
    /** @description Remove event listeners. */
    private unlisten;
    static ɵfac: i0.ɵɵFactoryDeclaration<DropDownButtonComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DropDownButtonComponent, "smart-drop-down-button, [smart-drop-down-button]", ["smart-drop-down-button"], { "animation": "animation"; "autoCloseDelay": "autoCloseDelay"; "disabled": "disabled"; "dropDownAppendTo": "dropDownAppendTo"; "dropDownButtonPosition": "dropDownButtonPosition"; "dropDownHeight": "dropDownHeight"; "dropDownMaxHeight": "dropDownMaxHeight"; "dropDownMaxWidth": "dropDownMaxWidth"; "dropDownMinHeight": "dropDownMinHeight"; "dropDownMinWidth": "dropDownMinWidth"; "dropDownOpenMode": "dropDownOpenMode"; "dropDownOverlay": "dropDownOverlay"; "dropDownPlaceholder": "dropDownPlaceholder"; "dropDownPosition": "dropDownPosition"; "dropDownWidth": "dropDownWidth"; "hint": "hint"; "horizontalScrollBarVisibility": "horizontalScrollBarVisibility"; "label": "label"; "unlockKey": "unlockKey"; "locale": "locale"; "localizeFormatFunction": "localizeFormatFunction"; "messages": "messages"; "opened": "opened"; "placeholder": "placeholder"; "placeholderTemplate": "placeholderTemplate"; "readonly": "readonly"; "resizeIndicator": "resizeIndicator"; "resizeMode": "resizeMode"; "rightToLeft": "rightToLeft"; "theme": "theme"; "unfocusable": "unfocusable"; "verticalScrollBarVisibility": "verticalScrollBarVisibility"; }, { "onActionButtonClick": "onActionButtonClick"; "onClose": "onClose"; "onClosing": "onClosing"; "onDropDownButtonClick": "onDropDownButtonClick"; "onOpen": "onOpen"; "onOpening": "onOpening"; "onResizeStart": "onResizeStart"; "onResizeEnd": "onResizeEnd"; }, never>;
}
