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 AlertProps {
    /**
     * Determines if the alert is centered
     */
    centered?: boolean;
    /**
     * Determines if the alert is permanent (doesn't have a close button).
     */
    permanent?: boolean;
    /**
     * The type of border radius to use. Available types:
     *
     * - `none` - no border radius
     * - `standard` - 4px border radius
     */
    radius?: 'none' | 'standard';
    /**
     * The type of alert. Available types:
     *
     * - `info`
     * - `success`
     * - `warning`
     * - `error`
     */
    severity?: StatusSeverity;
    /**
     * Determines if the alert is sticky. By default, it's not sticky. The provided `number` value is a top offset of alert.
     */
    sticky?: number | null;
    /**
     * The variant of alert. Available variants:
     *
     * - `filled` - previously alert component
     * - `outlined` - previously banner component
     */
    variant?: 'outlined' | 'filled';
}

declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AlertProps>, {
centered: boolean;
permanent: boolean;
radius: string;
severity: string;
sticky: null;
variant: string;
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AlertProps>, {
centered: boolean;
permanent: boolean;
radius: string;
severity: string;
sticky: null;
variant: string;
}>>> & Readonly<{}>, {
radius: "standard" | "none";
sticky: number | null;
centered: boolean;
permanent: boolean;
severity: "error" | "warning" | "info" | "success";
variant: "outlined" | "filled";
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
    default?(_: {}): any;
    link?(_: {}): any;
}>;
export default _default;

declare enum StatusSeverities {
    Error = "error",
    Warning = "warning",
    Info = "info",
    Success = "success"
}

declare type StatusSeverity = `${StatusSeverities}`;

export { }
