import { sizePropValidator } from '../../mixins';
import { Classes } from '../../types';
declare const _default: import("vue").DefineComponent<{
    /**
     * The active state of the button
     * @type Boolean
     * @default false
     * @name active
     */
    active: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Display the button as a block, spanning the full container width
     * @type Boolean
     * @default false
     * @name block
     */
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Display the button as a circle
     * @type Boolean
     * @default false
     * @name circle
     */
    circle: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * The color variant of the button
     * @type primary | success | light | dark | info | success | warning | danger | facebook | google | twitter | github
     * @default light
     * @name color
     */
    color: {
        type: StringConstructor;
        default: () => string;
    };
    /**
     * The disabled state of the button
     * @type Boolean
     * @default false
     * @name disabled
     */
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Display the button as a link
     * @type Boolean
     * @default false
     * @name link
     */
    link: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * The loading state of the button
     * @type Boolean
     * @default false
     * @name loading
     */
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Display the button as an outline button
     * @type Boolean
     * @default false
     * @name outline
     */
    outline: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Set the HTML tag to be used for rendering the button
     * @type String
     * @default button
     * @name tag
     */
    tag: {
        type: StringConstructor;
        default: string;
    };
    /**
     * The tabindex of the button
     * @type Number | String
     * @default 0
     * @name tabindex
     */
    tabindex: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    /**
     * The size variant of the button
     * @type sm | md | lg
     * @default md
     * @name size
     */
    size: {
        type: StringConstructor;
        default: () => string;
        validator: typeof sizePropValidator;
    };
}, unknown, unknown, {
    ariaBusy(): "true" | "false" | null;
    ariaDisabled(): "true" | "false" | null;
    ariaPressed(): "true" | "false" | null;
    classes(): Classes;
    isDisabled(): boolean;
    role(): string;
    tabIndex(): number | string;
}, {}, import("vue").DefineComponent<{
    tag: {
        type: StringConstructor;
        default: string;
    };
}, unknown, unknown, {
    isTag(): string;
    isComponent(): boolean;
    routerComponent(): string;
}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    tag?: unknown;
} & {
    tag: string;
} & {}>, {
    tag: string;
}>, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    active?: unknown;
    block?: unknown;
    circle?: unknown;
    color?: unknown;
    disabled?: unknown;
    link?: unknown;
    loading?: unknown;
    outline?: unknown;
    tag?: unknown;
    tabindex?: unknown;
    size?: unknown;
} & {
    circle: boolean;
    link: boolean;
    color: string;
    size: string;
    tag: string;
    outline: boolean;
    disabled: boolean;
    active: boolean;
    tabindex: string | number;
    loading: boolean;
    block: boolean;
} & {}>, {
    circle: boolean;
    link: boolean;
    color: string;
    size: string;
    tag: string;
    outline: boolean;
    disabled: boolean;
    active: boolean;
    tabindex: string | number;
    loading: boolean;
    block: boolean;
}>;
export default _default;
