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;
    };
};

declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EmptyStateProps>, {
/**
* An optional image to render
*/
image: () => {
alt: string;
src: string;
};
/**
* The custom message to render
*/
text: string;
title: string;
subtitle: string;
footnote: string;
vignette: undefined;
vignetteSize: number;
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EmptyStateProps>, {
/**
* An optional image to render
*/
image: () => {
alt: string;
src: string;
};
/**
* The custom message to render
*/
text: string;
title: string;
subtitle: string;
footnote: string;
vignette: undefined;
vignetteSize: number;
}>>> & Readonly<{}>, {
title: string;
image: {
alt?: string | undefined;
src: string;
};
text: string;
subtitle: string;
vignette: "map" | "search" | "bank" | "calendar" | "dashboard" | "edit" | "megaphone" | "truck" | "warehouse" | "payments" | "light-bulb" | "messages" | "pie-chart" | "api" | "basket" | "brand-menu" | "deals" | "document-search" | "empty-tray" | "graph" | "integrations" | "money-bank" | "no-filters-result" | "notifications" | "orders-empty" | "product-cards" | "product-details" | "product-display" | "search-storefront" | "store" | "todo" | "users" | "warehouse-delivery";
footnote: string;
vignetteSize: number;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, Readonly<EmptyStateSlots> & EmptyStateSlots>;
export default _default;

export declare interface EmptyStateProps {
    /**
     * @deprecated Use illustration instead.
     */
    image?: {
        alt?: string;
        src: string;
    };
    /**
     * @deprecated Use title instead.
     */
    text?: string;
    /**
     * the title text of the empty state
     */
    title?: string;
    /**
     * the subtitle text of the empty state
     */
    subtitle?: string;
    /**
     * additional text to place at the bottom of the empty state
     */
    footnote?: string;
    /**
     * The name of the vignette illustration to render
     */
    vignette?: VignetteNames;
    /**
     * The size in pixels of the vignette illustration. Defaults to 300.
     */
    vignetteSize?: number;
}

export declare interface EmptyStateSlots {
    title?: () => unknown;
    subtitle?: () => unknown;
    footnote?: () => unknown;
    button?: () => unknown;
    image?: () => unknown;
}

declare enum VignetteName {
    Api = "api",
    Bank = "bank",
    Basket = "basket",
    BrandMenu = "brand-menu",
    Calendar = "calendar",
    Dashboard = "dashboard",
    Deals = "deals",
    DocumentSearch = "document-search",
    Edit = "edit",
    EmptyTray = "empty-tray",
    Graph = "graph",
    Integrations = "integrations",
    LightBulb = "light-bulb",
    Map = "map",
    Megaphone = "megaphone",
    Messages = "messages",
    MoneyBank = "money-bank",
    NoFiltersResult = "no-filters-result",
    Notifications = "notifications",
    OrdersEmpty = "orders-empty",
    Payments = "payments",
    PieChart = "pie-chart",
    ProductCards = "product-cards",
    ProductDetails = "product-details",
    ProductDisplay = "product-display",
    Search = "search",
    SearchStorefront = "search-storefront",
    Store = "store",
    Todo = "todo",
    Truck = "truck",
    Users = "users",
    Warehouse = "warehouse",
    WarehouseDelivery = "warehouse-delivery"
}

declare type VignetteNames = `${VignetteName}`;

export { }
