export declare const componentModelConfigs: VModelConfig[];
/** lower-case tag names that should render in ClientOnly for nuxt */
export declare const clientOnlyComponents: string[];
/** lower-case tag names that should render its slotted content in ClientOnly for nuxt */
export declare const clientOnlySlots: string[];
export interface VModelConfig {
  /**
   * An array of element names that
   * should have v-model integration.
   */
  elements: string[];
  /**
   * The event emitted from the Web Component
   * that should trigger a `v-model` update,
   * prefixed with 'on' and camelCased.
   * ex.: 'input' -> 'onInput'
   */
  event: string;
  /**
   * NATIVE EVENTS ONLY: Determines the event.target
   * property to include in the payload for the
   * `update:modelValue` event our Vue wrapper emits.
   *
   * CUSTOM EVENTS will simply pass the event.detail
   * value as the Vue payload.
   */
  eventTargetAttr?: string;
  /**
   * Set to true if the event is a custom event
   * (i.e. not a native DOM event)
   */
  isCustomEvent?: boolean;
  /**
   * The name of the Web Component's prop to receive
   * the Vue component's `modelValue` prop value
   */
  prop: string;
  /**
   * By default, the Vue wrapper will pass its
   * `modelValue` prop value into the Web Component's
   * corresponding prop (see 'prop' above).
   *
   * This optional config is to allow a custom solution.
   *
   * For example, the `BsRadio.vue` wrapper would likely
   * expect a STRING value for its `modelValue` prop,
   * representing the "value" of the currently selected radio.
   *
   * On the other hand, the `bs-radio` web component is expecting
   * its Vue wrapper to pass in a boolean for the
   * web component's `checked` prop.
   *
   * Here we would configure `modelValueToProp: 'props.modelValue === props.value'`, where:
   * - `props.modelValue` is the value of the currently selected radio in the radio group
   * - `props.value` is the value of this particular radio
   */
  modelValueToProp?: string;
}
