import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { ExtractPropTypes } from 'vue';
import { PropType } from 'vue';
import { PublicProps } from 'vue';

declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;

declare type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_TypePropsToRuntimeProps<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: PropType<T[K]>;
        required: true;
    };
};

declare type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
        default: D[K];
    }> : P[K];
};

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

export declare interface BadgeProps {
    /**
     * If true, the badge will animate when the content changes
     */
    animate?: boolean;
    /**
     * Color of the badge
     * Options: 'red' or 'blue'
     */
    color?: 'red' | 'blue';
    /**
     * The badge's content
     */
    content?: number | string;
    /**
     * Shows a gray badge with content
     */
    isDisabled?: boolean;
    /**
     * The max value of the `content` prop. If the value is greater than this, the badge will show the max value and a `+` sign.
     */
    max?: number | string;
    /**
     * Offset to adjust the badge's position. It does not apply to inline position badges.
     */
    offset?: {
        top?: number;
        right?: number;
    };
    /**
     * Badge position. Options:
     *
     * - inline: shows the badge directly next to the content (on the right), with a left margin of 6px
     * - top-right: will overlap the badge over whatever is passed in the default slot
     */
    position?: 'top-right' | 'inline';
    /**
     * The badge will be hidden if the content is `0` unless this prop is set to true.
     */
    showZero?: boolean;
    /**
     * Badge variant
     */
    variant?: 'dot' | 'standard';
}

declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BadgeProps>, {
animate: boolean;
color: string;
content: undefined;
isDisabled: boolean;
max: number;
position: string;
offset: () => {
top: undefined;
right: undefined;
};
showZero: boolean;
variant: string;
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BadgeProps>, {
animate: boolean;
color: string;
content: undefined;
isDisabled: boolean;
max: number;
position: string;
offset: () => {
top: undefined;
right: undefined;
};
showZero: boolean;
variant: string;
}>>> & Readonly<{}>, {
max: string | number;
animate: boolean;
color: "blue" | "red";
offset: {
top?: number | undefined;
right?: number | undefined;
};
content: string | number;
isDisabled: boolean;
position: "inline" | "top-right";
variant: "standard" | "dot";
showZero: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
    default?(_: {}): any;
}>;
export default _default;

export { }
