import { ListSeparator } from '../list/list-item.types';
import { Option } from '../select/option.types';
/**
 * @exampleComponent limel-example-select
 * @exampleComponent limel-example-select-with-icons
 * @exampleComponent limel-example-select-with-separators
 * @exampleComponent limel-example-select-with-secondary-text
 * @exampleComponent limel-example-select-multiple
 * @exampleComponent limel-example-select-with-empty-option
 * @exampleComponent limel-example-select-preselected
 * @exampleComponent limel-example-select-change-options
 * @exampleComponent limel-example-select-dialog
 */
export declare class Select {
  /**
   * Set to `true` to make the field disabled.
   * and visually shows that the `select` component is editable but disabled.
   * This tells the users that if certain requirements are met,
   * the component may become interactable.
   */
  disabled: boolean;
  /**
   * Set to `true` to make the field read-only.
   * This visualizes the component slightly differently.
   * But shows no visual sign indicating that the component is disabled
   * or can ever become interactable.
   */
  readonly: boolean;
  /**
   * Set to `true` to indicate that the current value of the select is
   * invalid.
   */
  invalid: boolean;
  /**
   * True if the control requires a value.
   */
  required: boolean;
  /**
   * Text to display next to the select.
   */
  label: string;
  /**
   * Optional helper text to display below the input field when it has focus.
   */
  helperText: string;
  /**
   * Currently selected value or values.
   * If `multiple` is `true`, this must be an array. Otherwise it must be a
   * single value.
   */
  value: Option | Option[];
  /**
   * List of options.
   */
  options: Array<Option | ListSeparator>;
  /**
   * Set to `true` to allow multiple values to be selected.
   */
  multiple: boolean;
  /**
   * Emitted when the value is changed.
   */
  private change;
  private host;
  private menuOpen;
  private hasChanged;
  private checkValid;
  private mdcSelectHelperText;
  private mdcFloatingLabel;
  private isMobileDevice;
  private portalId;
  constructor();
  connectedCallback(): void;
  componentWillLoad(): void;
  componentDidLoad(): void;
  private initialize;
  disconnectedCallback(): void;
  componentDidUpdate(): void;
  render(): any;
  protected watchOpen(newValue: boolean, oldValue: boolean): void;
  private setMenuFocus;
  private setTriggerFocus;
  private handleMenuChange;
  private openMenu;
  private emitFirstChangeEvent;
  private closeMenu;
  private handleMenuTriggerKeyPress;
  private handleNativeChange;
  private getOptionsExcludingSeparators;
}
//# sourceMappingURL=select.d.ts.map