import type { ComputedRef, Ref, RenderFunction, SetupContext } from 'vue' import type { ButtonEmits, ButtonProps as ElButtonProps, ButtonType } from 'element-plus' import type { ButtonProps, CompSize } from '../base' import type { ComponentBaseOptions, ComponentSlotType, DefineComponentApp, DefineComponentInstance, Merge, } from '../common' export declare const KButton: DefineComponentApp export type KButtonInstance = DefineComponentInstance export interface KButtonConstructor extends ComponentBaseOptions, KButtonMethods { props: KButtonProps context: SetupContext getRefMaps(): KButtonPrivateRef getComputeMaps(): KButtonPrivateComputed renderVN: RenderFunction } export interface KButtonPrivateRef { refElem: Ref } export interface KButtonPrivateComputed { } export type KButtonProps = Merge> export type KButtonEmits = ButtonEmits export interface KButtonSlots { default: () => ComponentSlotType 'icon-left': () => ComponentSlotType 'icon-right': () => ComponentSlotType /** * 已废弃,请使用 icon-left * * @deprecated */ iconLeft: () => ComponentSlotType /** * 已废弃,请使用 icon-right * * @deprecated */ iconRight: () => ComponentSlotType } export type KButtonMethods = { ref: Ref size: ComputedRef type: ComputedRef disabled: ComputedRef shouldAddSpace: ComputedRef }