import { OptGroup, SelectOptions } from '../../types/SelectOptions';
export declare class TeliaSelect {
  /** Test id set for web component host */
  dataTestid: string;
  /** Set select disabled */
  disabled: boolean;
  /** The form associated with the select component. Provide id of form element. */
  htmlForm: string;
  /** Select element id */
  selectId: string;
  /** Additional description */
  additional?: string;
  /** Additional description id */
  additionalId: string;
  /** Label for select */
  label: string;
  /** Name of the form control when submitted */
  name: string;
  /** Error description id */
  errorId: string;
  /** Field needs to be filled, so it can be submitted  */
  required: boolean;
  /** Error message for required  */
  requiredErrorMessage?: string;
  /** General error message, which overrides other error messages and is shown at initial render */
  errorMessage?: string;
  /** Options array with properties provided to them */
  options: string | SelectOptions;
  /** OptGroup is an Array of OptGroup objects. If both options and optGroup are provided, only optGroup will be rendered.
   * If passed as string, it must parse into array of OptGroup.*/
  optGroup?: string | OptGroup[];
  /** Tracking id is used to identify and count Component usage */
  private dataTrackingId;
  /**
   * Select has been blurred at least once.
   */
  touched: boolean;
  /**
   * Real time value of select
   */
  selectValue: string;
  /**
   * Error message
   */
  errorMessageState: string;
  private selectElement;
  componentWillLoad(): void;
  componentWillUpdate(): void;
  componentDidRender(): void;
  /**
   * Renders out options property array as option elements if provided
   * Fallbacks to slot element
   */
  private renderOptionElements;
  /**
   * Renders out options property array as option elements if provided
   * Fallbacks to slot element
   */
  private renderOptionGroupElements;
  private updateSelectedValue;
  /**
   * Update error message and keep native input error message in sync.
   */
  private updateErrorMessage;
  private updateErrorState;
  render(): any;
}
