import { type PropType, type ExtractPublicPropTypes } from 'vue';
import { type ThemeComponent } from '../../composables/useTheme';
declare const badgeAlign: readonly ["left", "right"];
declare const badgePosition: readonly ["top", "bottom"];
declare const badgeProps: {
    tag: {
        type: StringConstructor;
        default: string;
    };
    position: {
        type: PropType<"top" | "bottom">;
        default: string;
    };
    align: {
        type: PropType<"left" | "right">;
        default: string;
    };
    offsetX: (StringConstructor | NumberConstructor)[];
    offsetY: (StringConstructor | NumberConstructor)[];
    animated: BooleanConstructor;
    outlined: BooleanConstructor;
    icon: StringConstructor;
    show: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
};
export type BadgePosition = typeof badgePosition[number];
export type BadgeAlign = typeof badgeAlign[number];
export type BadgeProps = ExtractPublicPropTypes<typeof badgeProps>;
type InternalClasses = 'wrapper';
export interface BadgeTheme extends ThemeComponent<BadgeProps, InternalClasses> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
    tag: {
        type: StringConstructor;
        default: string;
    };
    position: {
        type: PropType<"top" | "bottom">;
        default: string;
    };
    align: {
        type: PropType<"left" | "right">;
        default: string;
    };
    offsetX: (StringConstructor | NumberConstructor)[];
    offsetY: (StringConstructor | NumberConstructor)[];
    animated: BooleanConstructor;
    outlined: BooleanConstructor;
    icon: StringConstructor;
    show: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    tag: {
        type: StringConstructor;
        default: string;
    };
    position: {
        type: PropType<"top" | "bottom">;
        default: string;
    };
    align: {
        type: PropType<"left" | "right">;
        default: string;
    };
    offsetX: (StringConstructor | NumberConstructor)[];
    offsetY: (StringConstructor | NumberConstructor)[];
    animated: BooleanConstructor;
    outlined: BooleanConstructor;
    icon: StringConstructor;
    show: {
        type: BooleanConstructor;
        default: boolean;
    };
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>>, {
    tag: string;
    outlined: boolean;
    color: string;
    size: import("../../composables/useCommon").Size;
    position: "top" | "bottom";
    align: "left" | "right";
    animated: boolean;
    show: boolean;
}, {}>, {
    default?(_: {}): any;
    content?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
