/**
 * Tencent is pleased to support the open source community by making
 * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
 *
 * Copyright (C) 2025 Tencent.  All rights reserved.
 *
 * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
 *
 * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
 *
 * ---------------------------------------------------
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
 * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
 * the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
 * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 */
import { ExtractPropTypes, PropType } from 'vue';
import { BkLoadingMode } from '../loading';
import { ElementType } from '../shared';
type IButtonNativeType = PropType<'button' | 'reset' | 'submit'>;
declare const btnSizes: readonly ["", "small", "large"];
declare const buttonProps: {
    theme: import("vue-types").VueTypeDef<"danger" | "primary" | "success" | "warning">;
    hoverTheme: import("vue-types").VueTypeDef<"danger" | "primary" | "success" | "warning">;
    size: {
        type: PropType<ElementType<typeof btnSizes>>;
        default: "";
    };
    title: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    icon: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    iconRight: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    disabled: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    loading: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    loadingMode: {
        type: PropType<`${BkLoadingMode}`>;
        default: string;
    };
    outline: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    text: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    selected: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    nativeType: {
        type: IButtonNativeType;
        default: string;
    };
};
export type ButtonPropTypes = ExtractPropTypes<typeof buttonProps>;
declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
    theme: import("vue-types").VueTypeDef<"danger" | "primary" | "success" | "warning">;
    hoverTheme: import("vue-types").VueTypeDef<"danger" | "primary" | "success" | "warning">;
    size: {
        type: PropType<ElementType<typeof btnSizes>>;
        default: "";
    };
    title: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    icon: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    iconRight: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    disabled: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    loading: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    loadingMode: {
        type: PropType<`${BkLoadingMode}`>;
        default: string;
    };
    outline: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    text: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    selected: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    nativeType: {
        type: IButtonNativeType;
        default: string;
    };
}>, () => JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "mouseover")[], "click" | "mouseover", import("vue").PublicProps, Readonly<ExtractPropTypes<{
    theme: import("vue-types").VueTypeDef<"danger" | "primary" | "success" | "warning">;
    hoverTheme: import("vue-types").VueTypeDef<"danger" | "primary" | "success" | "warning">;
    size: {
        type: PropType<ElementType<typeof btnSizes>>;
        default: "";
    };
    title: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    icon: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    iconRight: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    };
    disabled: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    loading: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    loadingMode: {
        type: PropType<`${BkLoadingMode}`>;
        default: string;
    };
    outline: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    text: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    selected: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>>;
    nativeType: {
        type: IButtonNativeType;
        default: string;
    };
}>> & Readonly<{
    onClick?: (...args: any[]) => any;
    onMouseover?: (...args: any[]) => any;
}>, {
    title: string;
    size: "" | "small" | "large";
    icon: string;
    iconRight: string;
    loadingMode: "default" | "spin";
    nativeType: "button" | "reset" | "submit";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
