import { PropType } from 'vue';
import { ButtonAction, ButtonWeight, ButtonSize } from '../../types';
/**
 * A control that triggers an action when the user clicks or taps on it.
 */
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    /**
     * The kind of action that will be taken on click.
     *
     * @values 'default', 'progressive', 'destructive'
     */
    action: {
        type: PropType<ButtonAction>;
        default: string;
        validator: import("../../types").StringTypeValidator<"default" | "progressive" | "destructive">;
    };
    /**
     * Visual prominence of Button.
     *
     * @values 'normal', 'primary', 'quiet'
     */
    weight: {
        type: PropType<ButtonWeight>;
        default: string;
        validator: import("../../types").StringTypeValidator<"normal" | "primary" | "quiet">;
    };
    /**
     * Button size.
     *
     * Most Buttons should use the default medium size. In rare cases the large size should
     * be used, for example to make icon-only buttons larger on touchscreens.
     *
     * @values 'medium', 'large'
     */
    size: {
        type: PropType<ButtonSize>;
        default: string;
        validator: import("../../types").StringTypeValidator<"medium" | "large">;
    };
}>, {
    button: import("vue").Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
    rootClasses: import("vue").ComputedRef<{
        [x: string]: boolean;
        'cdx-button--framed': boolean;
        'cdx-button--icon-only': boolean;
        'cdx-button--is-active': boolean;
    }>;
    onClick: (event: Event) => void;
    onKeyDown: () => void;
    onKeyUp: () => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    /**
     * The kind of action that will be taken on click.
     *
     * @values 'default', 'progressive', 'destructive'
     */
    action: {
        type: PropType<ButtonAction>;
        default: string;
        validator: import("../../types").StringTypeValidator<"default" | "progressive" | "destructive">;
    };
    /**
     * Visual prominence of Button.
     *
     * @values 'normal', 'primary', 'quiet'
     */
    weight: {
        type: PropType<ButtonWeight>;
        default: string;
        validator: import("../../types").StringTypeValidator<"normal" | "primary" | "quiet">;
    };
    /**
     * Button size.
     *
     * Most Buttons should use the default medium size. In rare cases the large size should
     * be used, for example to make icon-only buttons larger on touchscreens.
     *
     * @values 'medium', 'large'
     */
    size: {
        type: PropType<ButtonSize>;
        default: string;
        validator: import("../../types").StringTypeValidator<"medium" | "large">;
    };
}>> & Readonly<{
    onClick?: ((...args: any[]) => any) | undefined;
}>, {
    size: "medium" | "large";
    action: "default" | "progressive" | "destructive";
    weight: "normal" | "primary" | "quiet";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
