import { Color } from '../../global/shared-types/color.types';
import { Icon } from '../../global/shared-types/icon.types';
/**
 * Describes an option for limel-select.
 * @public
 */
export interface Option<T extends string = string> {
  /**
   * The name of the option as shown to the user.
   */
  text: string;
  /**
   * Additional supporting text to display in under the option text.
   */
  secondaryText?: string;
  /**
   * The unique value of the option. Should always be the same for any given
   * option, regardless of localization. The type `T` defaults to `string`,
   * but can be set to any type that extends `string` (using `Option<type>`),
   * for example an enum of specific strings.
   *
   * Note the value of this property *must* be a string!
   * If the value you wish to use is, for example, numeric, convert it to a
   * string before sending it to limel-select. Using numeric values does work
   * in many desktop browsers, but breaks the select completely on some
   * iOS devices.
   */
  value: T;
  /**
   * Set to `true` to make this option disabled and not possible to select.
   */
  disabled?: boolean;
  /**
   * Displays an icon beside the name of the option.
   */
  icon?: string | Icon;
  /**
   * Adds a color to the icon.
   *
   * @deprecated This property is deprecated and will be removed soon!
   *
   * Use the new `Icon` interface instead and write:
   * ```
   * icon {
   *    name: string,
   *    color: string,
   * },
   * ```
   */
  iconColor?: Color;
}
//# sourceMappingURL=option.types.d.ts.map