import { VueNode as VueNode$1 } from "../_util/type.js";
import { ComponentBaseProps } from "../config-provider/context.js";
import * as vue281 from "vue";
import { SlotsType } from "vue";

//#region src/tag/CheckableTag.d.ts
interface CheckableTagProps extends ComponentBaseProps, CheckableTagEmitsProps {
  /**
   * It is an absolute controlled component and has no uncontrolled mode.
   *
   * .zh-cn 该组件为完全受控组件，不支持非受控用法。
   */
  checked: boolean;
  /**
   * @since 5.27.0
   */
  icon?: VueNode$1;
  disabled?: boolean;
}
interface CheckableTagEmits {
  'change': (checked: boolean) => void;
  'update:checked': (checked: boolean) => void;
  'click': (e: MouseEvent) => void;
  'keydown': (e: KeyboardEvent) => void;
}
interface CheckableTagEmitsProps {
  onChange?: CheckableTagEmits['change'];
  'onUpdate:checked'?: CheckableTagEmits['update:checked'];
  onClick?: CheckableTagEmits['click'];
  onKeydown?: CheckableTagEmits['keydown'];
}
interface CheckableTagSlots {
  default: () => any;
  icon: () => any;
}
declare const CheckableTag: vue281.DefineSetupFnComponent<CheckableTagProps, CheckableTagEmits, SlotsType<CheckableTagSlots>, CheckableTagProps, vue281.PublicProps>;
//#endregion
export { CheckableTagEmits, CheckableTagEmitsProps, CheckableTagProps, CheckableTagSlots, CheckableTag as default };