import { DefineComponent } from 'vue';

/**
 * InputRangeNumber component props
 */
export interface InputRangeNumberProps {
  /**
   * Number modelValue of the input.
   */
  modelValue?: (number | null)[];
  /**
   * The input label. Tell the user what input is this.
   */
  label?: string;
  /**
   * Specify the input placeholder.
   *
   * @default 'Input'
   */
  placeholder?: string;
  /**
   * Specify the min number input placeholder.
   *
   * @default 'Input'
   */
  minPlaceholder?: string;
  /**
   * Specify the max number input placeholder.
   *
   * @default 'Input'
   */
  maxPlaceholder?: string;
  /**
   * Disabled the input.
   */
  disabled?: boolean;
}

/**
 * InputRangeNumber component emits
 */
export type InputRangeNumberEmits = {
  /**
   * Emits when the both input already filled.
   */
  'update:modelValue': [payload?: (number | null)[]];
};

/**
 * **TSVue - InputRangeNumber**
 *
 * _Handle input number with form validation._
 *
 * --- ---
 * ![TSVue](https://ik.imagekit.io/kurniadev/TS-HEAD-BLACK.png)
 *
 * @group form
 */
declare const InputRangeNumber: DefineComponent<
  InputRangeNumberProps,
  InputRangeNumberEmits,
  Record<string, unknown>
>;

export default InputRangeNumber;
