import { PropType } from 'vue';
import type { ColorName } from '../../composables';
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
    tag: {
        type: StringConstructor;
        default: string;
    };
    type: {
        type: StringConstructor;
        default: string;
    };
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        type: PropType<ColorName>;
        default: string;
    };
    textColor: {
        type: StringConstructor;
        default: string;
    };
    textOpacity: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    backgroundOpacity: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    borderColor: {
        type: StringConstructor;
        default: string;
    };
    gradient: {
        type: BooleanConstructor;
        default: boolean;
    };
    plain: {
        type: BooleanConstructor;
        default: boolean;
    };
    round: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<"small" | "medium" | "large">;
        default: string;
        validator: (v: string) => boolean;
    };
    icon: {
        type: StringConstructor;
        default: string;
    };
    iconRight: {
        type: StringConstructor;
        default: string;
    };
    iconColor: {
        type: StringConstructor;
        default: string;
    };
    to: {
        type: PropType<string | Record<string, any>>;
        default: undefined;
    };
    replace: {
        type: BooleanConstructor;
        default: undefined;
    };
    append: {
        type: BooleanConstructor;
        default: undefined;
    };
    exact: {
        type: BooleanConstructor;
        default: undefined;
    };
    activeClass: {
        type: StringConstructor;
        default: undefined;
    };
    exactActiveClass: {
        type: StringConstructor;
        default: undefined;
    };
    href: {
        type: StringConstructor;
        default: undefined;
    };
    target: {
        type: StringConstructor;
        default: undefined;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
    pressedBehavior: {
        type: PropType<"opacity" | "mask">;
        default: string;
        validator: (value: string) => boolean;
    };
    pressedOpacity: {
        type: NumberConstructor;
        default: number;
    };
    pressedMaskColor: {
        type: StringConstructor;
        default: string;
    };
    hoverBehavior: {
        type: PropType<"opacity" | "mask">;
        default: string;
        validator: (value: string) => boolean;
    };
    hoverOpacity: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    hoverMaskColor: {
        type: StringConstructor;
        default: string;
    };
    sizesConfig: {
        type: PropType<Record<string, any>>;
        default: () => import("../../services/global-config").SizeConfig;
    };
    fontSizesConfig: {
        type: PropType<Record<string, any>>;
        default: () => import("../../services/global-config").SizeConfig;
    };
    preset: {
        type: PropType<import("../../composables").PresetPropValue>;
        default: undefined;
    };
}, {
    focus: () => void;
    blur: () => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    tag: {
        type: StringConstructor;
        default: string;
    };
    type: {
        type: StringConstructor;
        default: string;
    };
    block: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        type: PropType<ColorName>;
        default: string;
    };
    textColor: {
        type: StringConstructor;
        default: string;
    };
    textOpacity: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    backgroundOpacity: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    borderColor: {
        type: StringConstructor;
        default: string;
    };
    gradient: {
        type: BooleanConstructor;
        default: boolean;
    };
    plain: {
        type: BooleanConstructor;
        default: boolean;
    };
    round: {
        type: BooleanConstructor;
        default: boolean;
    };
    size: {
        type: PropType<"small" | "medium" | "large">;
        default: string;
        validator: (v: string) => boolean;
    };
    icon: {
        type: StringConstructor;
        default: string;
    };
    iconRight: {
        type: StringConstructor;
        default: string;
    };
    iconColor: {
        type: StringConstructor;
        default: string;
    };
    to: {
        type: PropType<string | Record<string, any>>;
        default: undefined;
    };
    replace: {
        type: BooleanConstructor;
        default: undefined;
    };
    append: {
        type: BooleanConstructor;
        default: undefined;
    };
    exact: {
        type: BooleanConstructor;
        default: undefined;
    };
    activeClass: {
        type: StringConstructor;
        default: undefined;
    };
    exactActiveClass: {
        type: StringConstructor;
        default: undefined;
    };
    href: {
        type: StringConstructor;
        default: undefined;
    };
    target: {
        type: StringConstructor;
        default: undefined;
    };
    loading: {
        type: BooleanConstructor;
        default: boolean;
    };
    pressedBehavior: {
        type: PropType<"opacity" | "mask">;
        default: string;
        validator: (value: string) => boolean;
    };
    pressedOpacity: {
        type: NumberConstructor;
        default: number;
    };
    pressedMaskColor: {
        type: StringConstructor;
        default: string;
    };
    hoverBehavior: {
        type: PropType<"opacity" | "mask">;
        default: string;
        validator: (value: string) => boolean;
    };
    hoverOpacity: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    hoverMaskColor: {
        type: StringConstructor;
        default: string;
    };
    sizesConfig: {
        type: PropType<Record<string, any>>;
        default: () => import("../../services/global-config").SizeConfig;
    };
    fontSizesConfig: {
        type: PropType<Record<string, any>>;
        default: () => import("../../services/global-config").SizeConfig;
    };
    preset: {
        type: PropType<import("../../composables").PresetPropValue>;
        default: undefined;
    };
}>>, {
    size: "small" | "medium" | "large";
    replace: boolean;
    type: string;
    preset: import("../../composables").PresetPropValue;
    target: string;
    color: ColorName;
    textColor: string;
    icon: string;
    borderColor: string;
    gradient: boolean;
    tag: string;
    sizesConfig: Record<string, any>;
    fontSizesConfig: Record<string, any>;
    loading: boolean;
    block: boolean;
    disabled: boolean;
    textOpacity: string | number;
    backgroundOpacity: string | number;
    plain: boolean;
    round: boolean;
    iconRight: string;
    iconColor: string;
    to: string | Record<string, any>;
    append: boolean;
    exact: boolean;
    activeClass: string;
    exactActiveClass: string;
    href: string;
    pressedBehavior: "opacity" | "mask";
    pressedOpacity: number;
    pressedMaskColor: string;
    hoverBehavior: "opacity" | "mask";
    hoverOpacity: string | number;
    hoverMaskColor: string;
}, {}>, {
    prepend?(_: {
        icon: string;
        iconAttributes: {
            color: string;
            size: "small" | "medium" | "large";
        };
    }): any;
    default?(_: {}): any;
    append?(_: {
        icon: string;
        iconAttributes: {
            color: string;
            size: "small" | "medium" | "large";
        };
    }): any;
    loading?(_: {
        size: string;
        color: string;
    }): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
