import { PropType, ButtonHTMLAttributes, ExtractPropTypes, VNodeChild } from 'vue';
import type { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
import type { Type, Size } from './interface';
export declare const buttonProps: {
readonly color: StringConstructor;
readonly textColor: StringConstructor;
readonly text: BooleanConstructor;
readonly block: BooleanConstructor;
readonly loading: BooleanConstructor;
readonly disabled: BooleanConstructor;
readonly circle: BooleanConstructor;
readonly size: PropType;
readonly ghost: BooleanConstructor;
readonly round: BooleanConstructor;
readonly secondary: BooleanConstructor;
readonly tertiary: BooleanConstructor;
readonly quaternary: BooleanConstructor;
readonly strong: BooleanConstructor;
readonly focusable: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly keyboard: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly tag: {
readonly type: PropType;
readonly default: "button";
};
readonly type: {
readonly type: PropType;
readonly default: "default";
};
readonly dashed: BooleanConstructor;
readonly renderIcon: PropType<() => VNodeChild>;
readonly iconPlacement: {
readonly type: PropType<"left" | "right">;
readonly default: "left";
};
readonly attrType: {
readonly type: PropType<"button" | "reset" | "submit">;
readonly default: "button";
};
readonly bordered: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly onClick: PropType void>>;
readonly nativeFocusBehavior: {
readonly type: BooleanConstructor;
readonly default: boolean;
};
readonly theme: PropType>;
readonly themeOverrides: PropType>>;
readonly builtinThemeOverrides: PropType>>;
};
export type ButtonProps = ExtractPublicPropTypes;
declare const Button: import("vue").DefineComponent<{
readonly color: StringConstructor;
readonly textColor: StringConstructor;
readonly text: BooleanConstructor;
readonly block: BooleanConstructor;
readonly loading: BooleanConstructor;
readonly disabled: BooleanConstructor;
readonly circle: BooleanConstructor;
readonly size: PropType;
readonly ghost: BooleanConstructor;
readonly round: BooleanConstructor;
readonly secondary: BooleanConstructor;
readonly tertiary: BooleanConstructor;
readonly quaternary: BooleanConstructor;
readonly strong: BooleanConstructor;
readonly focusable: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly keyboard: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly tag: {
readonly type: PropType;
readonly default: "button";
};
readonly type: {
readonly type: PropType;
readonly default: "default";
};
readonly dashed: BooleanConstructor;
readonly renderIcon: PropType<() => VNodeChild>;
readonly iconPlacement: {
readonly type: PropType<"left" | "right">;
readonly default: "left";
};
readonly attrType: {
readonly type: PropType<"button" | "reset" | "submit">;
readonly default: "button";
};
readonly bordered: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly onClick: PropType void>>;
readonly nativeFocusBehavior: {
readonly type: BooleanConstructor;
readonly default: boolean;
};
readonly theme: PropType>;
readonly themeOverrides: PropType>>;
readonly builtinThemeOverrides: PropType>>;
}, {
selfElRef: import("vue").Ref;
waveElRef: import("vue").Ref<{
play: () => void;
} | null>;
mergedClsPrefix: import("vue").ComputedRef;
mergedFocusable: import("vue").ComputedRef;
mergedSize: import("vue").ComputedRef<"small" | "medium" | "large" | "tiny">;
showBorder: import("vue").ComputedRef;
enterPressed: import("vue").Ref;
rtlEnabled: import("vue").Ref | undefined;
handleMousedown: (e: MouseEvent) => void;
handleKeydown: (e: KeyboardEvent) => void;
handleBlur: () => void;
handleKeyup: (e: KeyboardEvent) => void;
handleClick: (e: MouseEvent) => void;
customColorCssVars: import("vue").ComputedRef<{
'--n-border-color': string;
'--n-border-color-hover': string;
'--n-border-color-pressed': string;
'--n-border-color-focus': string;
'--n-border-color-disabled': string;
} | null>;
cssVars: import("vue").ComputedRef<{
'--n-width': string;
'--n-height': string;
'--n-font-size': string;
'--n-padding': string;
'--n-icon-size': string;
'--n-icon-margin': string;
'--n-border-radius': string;
'--n-border': string;
'--n-border-hover': string;
'--n-border-pressed': string;
'--n-border-focus': string;
'--n-border-disabled': string;
'--n-color': string;
'--n-color-hover': string;
'--n-color-pressed': string;
'--n-color-focus': string;
'--n-color-disabled': string;
'--n-ripple-color': string;
'--n-text-color': string;
'--n-text-color-hover': string;
'--n-text-color-pressed': string;
'--n-text-color-focus': string;
'--n-text-color-disabled': string;
'font-weight': string;
'--n-bezier': string;
'--n-bezier-ease-out': string;
'--n-ripple-duration': string;
'--n-opacity-disabled': string;
'--n-wave-opacity': string;
}> | undefined;
themeClass: import("vue").Ref | undefined;
onRender: (() => void) | undefined;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly;
readonly ghost: BooleanConstructor;
readonly round: BooleanConstructor;
readonly secondary: BooleanConstructor;
readonly tertiary: BooleanConstructor;
readonly quaternary: BooleanConstructor;
readonly strong: BooleanConstructor;
readonly focusable: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly keyboard: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly tag: {
readonly type: PropType;
readonly default: "button";
};
readonly type: {
readonly type: PropType;
readonly default: "default";
};
readonly dashed: BooleanConstructor;
readonly renderIcon: PropType<() => VNodeChild>;
readonly iconPlacement: {
readonly type: PropType<"left" | "right">;
readonly default: "left";
};
readonly attrType: {
readonly type: PropType<"button" | "reset" | "submit">;
readonly default: "button";
};
readonly bordered: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly onClick: PropType void>>;
readonly nativeFocusBehavior: {
readonly type: BooleanConstructor;
readonly default: boolean;
};
readonly theme: PropType>;
readonly themeOverrides: PropType>>;
readonly builtinThemeOverrides: PropType>>;
}>>, {
readonly type: Type;
readonly tag: keyof HTMLElementTagNameMap;
readonly block: boolean;
readonly round: boolean;
readonly dashed: boolean;
readonly text: boolean;
readonly circle: boolean;
readonly disabled: boolean;
readonly focusable: boolean;
readonly strong: boolean;
readonly loading: boolean;
readonly bordered: boolean;
readonly tertiary: boolean;
readonly ghost: boolean;
readonly secondary: boolean;
readonly quaternary: boolean;
readonly keyboard: boolean;
readonly iconPlacement: "left" | "right";
readonly attrType: "button" | "reset" | "submit";
readonly nativeFocusBehavior: boolean;
}>;
type InternalButtonProps = ExtractPropTypes;
type NativeButtonProps = Omit;
type MergedProps = Partial;
export default Button;
export declare const XButton: new () => {
$props: MergedProps;
};