import { EventEmitter, OnChanges, SimpleChanges, Renderer2 } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import { CssUtils } from "../utils";
import { ElementRef } from "@angular/core";
import { MatMenuTrigger } from "@angular/material/menu";
import { DropdownService } from "./services/dropdown.service";
import * as i0 from "@angular/core";
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
declare type Margin = {
    top?: Space;
    bottom?: Space;
    left?: Space;
    right?: Space;
};
export declare class DxcDropdownComponent implements OnChanges {
    private utils;
    private ren;
    private _element;
    private service;
    /**
     * In case options include icons, whether the icon should appear after or before the label.
     */
    optionsIconPosition: "before" | "after";
    /**
     * Whether the icon should appear after or before the label.
     */
    iconPosition: "before" | "after";
    /**
     * Text to be placed when the list of options is not displayed.
     */
    label: string;
    /**
     * Name attribute of the input element.
     */
    name: string;
    /**
     * Whether the arrow next to the label is displayed or not.
     */
    get caretHidden(): boolean;
    set caretHidden(value: boolean);
    private _caretHidden;
    /**
     * Size of the margin to be applied to the component
     * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
     * You can pass an object with 'top', 'bottom', 'left' and 'right' properties
     * in order to specify different margin sizes.
     */
    margin: Space | Margin;
    /**
     * Size of the component.
     */
    size: "small" | "medium" | "large" | "fillParent" | "fitContent";
    /**
     * This event will emit in case the selection changes. The value of the selected
     * value will be passed as a parameter.
     */
    onSelectOption: EventEmitter<string>;
    /**
     * Value of the tabindex.
     */
    get tabIndexValue(): number;
    set tabIndexValue(value: number);
    private _tabIndexValue;
    /**
     * If true, the options are showed when the dropdown is hover.
     */
    get expandOnHover(): boolean;
    set expandOnHover(value: boolean);
    private _expandOnHover;
    /**
     * If true, the component will be disabled.
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    className: any;
    dropdownButton: any;
    menuTrigger: MatMenuTrigger;
    clickout(event: any): void;
    menuOptions: string;
    triggerStyles: string;
    defaultInputs: BehaviorSubject<any>;
    arrowClass: string;
    menuOpened: string;
    enterButton: boolean;
    menuOpen: boolean;
    btnTrigger: any;
    private width;
    constructor(utils: CssUtils, ren: Renderer2, _element: ElementRef, service: DropdownService);
    sizes: {
        small: string;
        medium: string;
        large: string;
        fillParent: string;
        fitContent: string;
    };
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    isMenuOpened(): void;
    selectedOption(option: any): void;
    calculateWidth(inputs: any): string;
    updateCss(): void;
    iconPositionAfter(iconPositionAfter: any): string;
    setDxcMenuOptionsStyle(): string;
    triggerButtonStyles(inputs: any): string;
    getDynamicStyle(inputs: any): string;
    buttonEnter(trigger: any): void;
    buttonLeave(trigger: any, button: any): void;
    menuenter(): void;
    menuLeave(trigger: any, button: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxcDropdownComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxcDropdownComponent, "dxc-dropdown", never, { "optionsIconPosition": "optionsIconPosition"; "iconPosition": "iconPosition"; "label": "label"; "name": "name"; "caretHidden": "caretHidden"; "margin": "margin"; "size": "size"; "tabIndexValue": "tabIndexValue"; "expandOnHover": "expandOnHover"; "disabled": "disabled"; }, { "onSelectOption": "onSelectOption"; }, never, ["dxc-dropdown-icon", "*"]>;
}
export {};
//# sourceMappingURL=dxc-dropdown.component.d.ts.map