import { SetupContext, RenderFunction, ComponentPublicInstance } from 'vue' import { VXEComponent, VxeComponentBase, VxeEvent, ValueOf } from './component' import { VxeRadioPropTypes } from './radio' /* eslint-disable no-use-before-define */ /** * 组件 - 单选框按钮 * @example import { VxeRadioButton } from 'vxe-table' */ export const VxeRadioButton: VXEComponent /** * 组件 - 单选框按钮 */ export const RadioButton: typeof VxeRadioButton export type VxeRadioButtonInstance = ComponentPublicInstance export interface VxeRadioButtonConstructor extends VxeComponentBase, VxeRadioButtonMethods { props: VxeRadioButtonProps context: SetupContext renderVN: RenderFunction } export interface RadioButtonMethods { dispatchEvent(type: ValueOf, params: any, evnt: Event): void } export interface VxeRadioButtonMethods extends RadioButtonMethods { } export interface RadioButtonPrivateMethods { } export interface VxeRadioButtonPrivateMethods extends RadioButtonPrivateMethods { } export type VxeRadioButtonEmits = [ 'update:modelValue', 'change' ] export type VxeRadioButtonProps = { size?: VxeRadioButtonPropTypes.Size modelValue?: VxeRadioButtonPropTypes.ModelValue /** * 严格模式,不允许取消 */ strict?: VxeRadioButtonPropTypes.Strict label?: VxeRadioButtonPropTypes.Label title?: VxeRadioButtonPropTypes.Title content?: VxeRadioButtonPropTypes.Content disabled?: VxeRadioButtonPropTypes.Disabled } export namespace VxeRadioButtonPropTypes { export type Size = VxeRadioPropTypes.Size export type ModelValue = any export type Strict = boolean export type Label = VxeRadioPropTypes.Label export type Title = string | number export type Content = string | number export type Disabled = boolean } export namespace VxeRadioButtonDefines { interface RadioButtonEventParams extends VxeEvent { $radioButton: VxeRadioButtonConstructor } export interface ChangeParams { label: any } export interface ChangeEventParams extends RadioButtonEventParams, ChangeParams { } } export type VxeRadioButtonEventProps = { onChange?: VxeRadioButtonEvents.Change } export interface VxeRadioButtonListeners { change?: VxeRadioButtonEvents.Change } export namespace VxeRadioButtonEvents { export type Change = (params: VxeRadioButtonDefines.ChangeEventParams) => void } export interface VxeRadioButtonSlots { /** * 自定义插槽模板 */ [key: string]: ((params: { [key: string]: any }) => any) | undefined }