import { MultiColumnComboBox } from "./MultiColumnComboBox";
import { BaseControlTheme } from "igniteui-webcomponents-core";
import { ControlDisplayDensity } from "igniteui-webcomponents-core";
import { SortMode } from './SortMode';
import { IDataSource } from "igniteui-webcomponents-core";
import { IgcMultiColumnComboBoxTextChangedEventArgs } from './igc-multi-column-combo-box-text-changed-event-args';
import { IgcMultiColumnComboBoxValueChangedEventArgs } from './igc-multi-column-combo-box-value-changed-event-args';
import { IgcGotFocusEventArgs } from './igc-got-focus-event-args';
import { IgcLostFocusEventArgs } from './igc-lost-focus-event-args';
import { IgcHTMLElement } from "igniteui-webcomponents-core";
import { IgcKeyEventArgs } from "igniteui-webcomponents-core";
import { IgcInputChangeEventArgs } from "igniteui-webcomponents-inputs";
import { IgcColumnWidth } from './igc-column-width';
export declare class IgcMultiColumnComboBoxComponent extends IgcHTMLElement {
    private _implementation;
    private _height;
    private _width;
    height: string;
    width: string;
    private _webComponentWrapper;
    private _webComponentRenderer;
    private _portalManager;
    constructor();
    updateStyle(): void;
    destroy(): void;
    protected createImplementation(): MultiColumnComboBox;
    readonly i: MultiColumnComboBox;
    private _disconnected;
    disconnectedCallback(): void;
    connectedCallback(): void;
    afterContentInit(): void;
    /**
     * Gets or sets the default column width to use if a column as no local width.
     * */
    defaultColumnWidth: IgcColumnWidth;
    private _settingAttributes;
    protected _attached: boolean;
    private _queuedSetAttributes;
    protected _enqueueSetAttribute(attrName: string, attrValue: string): void;
    protected _flushQueuedAttributes(): void;
    protected _a(attrName: string, attrValue: any): void;
    private static _observedAttributesIgcMultiColumnComboBoxComponent;
    static readonly observedAttributes: string[];
    private _updatingFromAttribute;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    static htmlTagName: string;
    protected static _isElementRegistered: boolean;
    static register(): void;
    /**
 * Gets or sets the ShowClearButton property to detirmine if the clear button is shown
*/
    showClearButton: boolean;
    /**
     * Gets or sets the desired properties for the data source to load. If specified the data source may decide to constrain the properties it fetches to these properties and must make sure that at least those properties are loaded, rather than the default behavior for that data source.
    */
    fields: string[];
    /**
     * Gets or sets the background color to use for the input group.
    */
    backgroundColor: string;
    /**
     * Gets the actual opacity to use for the underline ripple element.
    */
    actualBackgroundColor: string;
    /**
     * Gets or sets the base built in theme to use for the component.
    */
    baseTheme: BaseControlTheme;
    /**
     * Gets the actual display baseTheme to use for the component.
    */
    actualBaseTheme: BaseControlTheme;
    /**
     * Gets or sets the color to use the border of the input group.
    */
    borderColor: string;
    /**
     * Gets the actual item background color.
    */
    actualBorderColor: string;
    /**
     * Gets or sets the border width to use for the border of the item group.
    */
    borderWidth: number;
    /**
     * Gets the actual item border width.
    */
    actualBorderWidth: number;
    /**
     * Gets or sets the visibility of the drop down button.
    */
    columnHeadersVisible: boolean;
    contentPaddingBottom: number;
    contentPaddingLeft: number;
    contentPaddingRight: number;
    contentPaddingTop: number;
    ensureContentPadding(): void;
    actualContentPaddingBottom: number;
    actualContentPaddingLeft: number;
    actualContentPaddingRight: number;
    actualContentPaddingTop: number;
    ensureActualContentPadding(): void;
    cornerRadiusBottomRight: number;
    cornerRadiusBottomLeft: number;
    cornerRadiusTopLeft: number;
    cornerRadiusTopRight: number;
    ensureCornerRadius(): void;
    actualCornerRadiusBottomRight: number;
    actualCornerRadiusBottomLeft: number;
    actualCornerRadiusTopLeft: number;
    actualCornerRadiusTopRight: number;
    ensureActualCornerRadius(): void;
    /**
     * Gets or sets the desired properties for the data source to load. If specified the data source may decide to constrain the properties it fetches to these properties and must make sure that at least those properties are loaded, rather than the default behavior for that data source.
    */
    dataSourceDesiredProperties: string[];
    /**
     * Gets or sets the display Density to use for the buttons and dropdown grid.
    */
    density: ControlDisplayDensity;
    /**
     * Gets the actual display Density to use for the component.
    */
    actualDensity: ControlDisplayDensity;
    /**
     * Gets or sets the visibility of the drop down button.
    */
    dropDownButtonVisible: boolean;
    /**
     * Gets or sets the color to use the hovered background of the inputs in the group.
    */
    focusBorderColor: string;
    /**
     * Gets the actual item border color.
    */
    actualFocusBorderColor: string;
    /**
     * Gets or sets the border width to use for the border of the item group when focused.
    */
    focusBorderWidth: number;
    /**
     * Gets the actual item border width.
    */
    actualFocusBorderWidth: number;
    /**
     * Gets or sets the color to use for the underline element.
    */
    focusUnderlineColor: string;
    /**
     * Gets the actual color to use for the underline element when focused.
    */
    actualFocusUnderlineColor: string;
    /**
     * Gets or sets the color to use for the underline element.
    */
    focusUnderlineOpacity: number;
    /**
     * Gets the actual opacity to use for the underline element when focused.
    */
    actualFocusUnderlineOpacity: number;
    /**
     * Gets or sets the opacity to use for the underline ripple element when focused.
    */
    focusUnderlineRippleOpacity: number;
    /**
     * Gets the actual opacity to use for the underline ripple element when focused.
    */
    actualFocusUnderlineRippleOpacity: number;
    /**
     * Gets or sets the color to use for the underline element.
    */
    hoverUnderlineColor: string;
    /**
     * Gets the actual color to use for the underline element.
    */
    actualHoverUnderlineColor: string;
    /**
     * Gets or sets the color to use for the underline element.
    */
    hoverUnderlineOpacity: number;
    /**
     * Gets the actual opacity to use for the underline element when hovered.
    */
    actualHoverUnderlineOpacity: number;
    /**
     * Gets or sets the width to use for the underline element when hovered.
    */
    hoverUnderlineWidth: number;
    /**
     * Gets the width to use for the underline element when hovered.
    */
    actualHoverUnderlineWidth: number;
    /**
     * Gets or sets the data to which to bind the combo box list. This can be some type of array or list, or it can
     * be an IDataSource instance.
    */
    dataSource: any;
    /**
     * Gets the actual data source that is being used by the combo box list. If a collection was provided for the combo box data, an implicit LocalDataSource has been created, and this is available via this property.
    */
    readonly actualDataSource: IDataSource;
    /**
     * The text displayed in the label portion of the control.
    */
    label: string;
    /**
     * Gets or sets the color to use for the text.
    */
    labelTextColor: string;
    /**
     * Gets the actual color to use for the text color.
    */
    actualLabelTextColor: string;
    /**
     * Gets or sets the font to use for the combobox.
    */
    labelTextStyle: string;
    /**
     * Gets or sets the visibility of the label.
    */
    actualLabelVisible: boolean;
    /**
     * Gets or sets the text to display on the list when no suggested matches are found.
    */
    noMatchesFoundLabel: string;
    /**
     * Gets the actual text to display on the list when no suggested matches are found.
    */
    actualNoMatchesFoundLabel: string;
    /**
     * Gets or sets the color to use for the "no matches found" label.
    */
    noMatchesFoundLabelBackgroundColor: string;
    /**
     * Gets the actual color to use for the "no matches found" label.
    */
    actualNoMatchesFoundLabelBackgroundColor: string;
    /**
     * Gets or sets the color to use for the "no matches found" label.
    */
    noMatchesFoundLabelTextColor: string;
    /**
     * Gets the actual color to use for the "no matches found" label.
    */
    actualNoMatchesFoundLabelTextColor: string;
    /**
     * Gets or sets the font to use for the combobox.
    */
    noMatchesFoundLabelTextStyle: string;
    /**
     * Placeholder text which gives the user a hint about what kind of text is expected.
    */
    placeholder: string;
    /**
     * Gets or sets the visibility of the row separators in the drop down.
    */
    rowSeparatorsVisible: boolean;
    /**
     * Gets or sets the color to use for the text.
    */
    textColor: string;
    /**
     * Gets the actual color to use for the text color.
    */
    actualTextColor: string;
    /**
     * Gets or sets the font to use for the combobox.
    */
    textStyle: string;
    /**
     * Gets or sets the color to use for the underline element.
    */
    underlineColor: string;
    /**
     * Gets the actual color to use for the underline element.
    */
    actualUnderlineColor: string;
    /**
     * Gets or sets the color to use for the underline element.
    */
    underlineOpacity: number;
    /**
     * Gets the actual opacity to use for the underline element.
    */
    actualUnderlineOpacity: number;
    /**
     * Gets or sets the color to use for the underline ripple element.
    */
    underlineRippleColor: string;
    /**
     * Gets the actual color to use for the underline ripple element.
    */
    actualUnderlineRippleColor: string;
    /**
     * Gets or sets the opacity to use for the underline ripple element.
    */
    underlineRippleOpacity: number;
    /**
     * Gets the actual opacity to use for the underline ripple element.
    */
    actualUnderlineRippleOpacity: number;
    /**
     * Gets or sets the width to use for the underline element.
    */
    underlineRippleWidth: number;
    /**
     * Gets the actual width to use for the underline element.
    */
    actualUnderlineRippleWidth: number;
    /**
     * Gets or sets the width to use for the underline element.
    */
    underlineWidth: number;
    /**
     * Gets the actual width to use for the underline element.
    */
    actualUnderlineWidth: number;
    /**
     * Whether to allow filtering of the combo
    */
    allowFilter: boolean;
    /**
     * Returns/sets the action to take when a column header is clicked.
    */
    sortMode: SortMode;
    /**
     * Determines the name of the field in the data source will be used as the Text of the MultiColumnComboBox.
    */
    textField: string;
    /**
     * The text displayed in the edit portion of the control.
    */
    text: string;
    /**
     * Sets or gets the user provided primary key to assume for the data. Certain functionality of the combo (such as the the current Value) requires
     * a way to uniquely identify items in order to work correctly.
     * If a primary key cannot be inferred from the data source, you may need to provide one here.
    */
    valueField: string[];
    /**
     * Gets the actual name of the field in the data source will be used as the Value of the MultiColumnComboBox.
    */
    actualValueField: string[];
    /**
     * Gets or sets the Value of the combo.
     * When the user selects an item from, the value is set based on the specified ValueField field. If not ValueField is specified, then the first field in the data source is used.
     * When the user enters text into the combo, the list is searched based on the TextField field. If a matching string is found, the Value of the combo is the value of the ValueField field in the same row.
     * If the text entered in the combo does not match any item on the list, then the value will return null.
    */
    value: any;
    findByName(name: string): any;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected readonly hasUserValues: Set<string>;
    protected __m(propertyName: string): void;
    protected _stylingContainer: any;
    protected _stylingParent: any;
    protected _inStyling: boolean;
    protected _styling(container: any, component: any, parent?: any): void;
    /**
 * Programmatically closes the list.

*/
    closeUp(): void;
    /**
     * Programmatically drops down the list.
    
    */
    dropDown(): void;
    /**
     * Selects all the text in the combo input area.
    
    */
    select(): void;
    /**
     * Exports visual information about the current state of the grid.
    
    */
    exportVisualModel(): any;
    /**
     * Returns a serialized copy of the exported visual model
    
    */
    exportSerializedVisualModel(): string;
    private _gotFocus;
    private _gotFocus_wrapped;
    gotFocus: (s: IgcMultiColumnComboBoxComponent, e: IgcGotFocusEventArgs) => void;
    private _lostFocus;
    private _lostFocus_wrapped;
    lostFocus: (s: IgcMultiColumnComboBoxComponent, e: IgcLostFocusEventArgs) => void;
    private _textChanged;
    private _textChanged_wrapped;
    textChanged: (s: IgcMultiColumnComboBoxComponent, e: IgcMultiColumnComboBoxTextChangedEventArgs) => void;
    private _valueChanged;
    private _valueChanged_wrapped;
    valueChanged: (s: IgcMultiColumnComboBoxComponent, e: IgcMultiColumnComboBoxValueChangedEventArgs) => void;
    private _keyDown;
    private _keyDown_wrapped;
    keyDown: (s: IgcMultiColumnComboBoxComponent, e: IgcKeyEventArgs) => void;
    private _change;
    private _change_wrapped;
    change: (s: IgcMultiColumnComboBoxComponent, e: IgcInputChangeEventArgs) => void;
    private _changing;
    private _changing_wrapped;
    changing: (s: IgcMultiColumnComboBoxComponent, e: IgcInputChangeEventArgs) => void;
}
