import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { PublicProps } from 'vue';
import { StashColorNames } from '@leaflink/stash-types/colors';
import { StashColorNamesWithShades } from '@leaflink/stash-types/colors';

declare const _default: DefineComponent<IllustrationProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<IllustrationProps> & Readonly<{}>, {
id: string;
title: string;
size: number;
staticPath: string;
type: IllustrationTypes;
fillColor: StashColorNames;
strokeColor: StashColorNamesWithShades | "white" | "black";
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
export default _default;

export declare interface IllustrationProps {
    id?: string;
    /**
     * The filename of the icon that should be displayed
     */
    name: SpotNames | VignetteNames;
    /**
     * Accessible, short-text description for the icon. Not rendered as part of the graphic, but
     * browsers usually display it as a tooltip and screen readers use this.
     */
    title?: string;
    /**
     * The size in pixels of the illustration.  This number will be used for width and height
     */
    size?: number;
    /**
     * Type of the illustration
     */
    type?: IllustrationTypes;
    /**
     * The fill color for the illustration.  This component will use the 400 shade of the color
     * per design's request.  Defaults to teal.
     */
    fillColor?: StashColorNames;
    /**
     * The color theme for the illustration.  This component will use the standard 500 shade of the color.
     * Defaults to purple
     */
    strokeColor?: StashColorNamesWithShades | 'white' | 'black';
    /**
     * Illustration's custom static path. It'll default to either the staticPath defined on the library installation or '/static' if none are provided.
     */
    staticPath?: string;
}

/**
 * Types of illustrations that map to the subfolder under ./assets/illustrations/<type>
 */
export declare enum IllustrationType {
    Spot = "spot",
    Vignette = "vignette",
    Scene = "scene"
}

export declare type IllustrationTypes = `${IllustrationType}`;

/**
 * Enum to strongly map between a friendly name and file name of the illustration
 */
export declare enum SpotName {
    Approved = "approved",
    Avatar = "avatar",
    Barcode = "barcode",
    Calendar = "calendar",
    Cartridge = "cartridge",
    Celebrate = "celebrate",
    ChatBubble = "chat-bubble",
    CheckBox = "check-box",
    CheckCircle = "check-circle",
    Click = "click",
    Cocktail = "cocktail",
    Confirmation = "confirmation",
    Connnect = "connnect",
    Cookie = "cookie",
    CreditCard = "credit-card",
    Crm = "crm",
    Cultivation = "cultivation",
    Data = "data",
    DeliveryCompleted = "delivery-completed",
    Delivery = "delivery",
    DigitalPayments = "digital-payments",
    Discover = "discover",
    Diversity = "diversity",
    Drink = "drink",
    Dolly = "dolly",
    EasyReconciliations = "easy-reconciliations",
    Efficiency = "efficiency",
    Error = "error",
    ExtendDate = "extend-date",
    FinancialGrowth = "financial-growth",
    FinancialInstitution = "financial-institution",
    Focus = "focus",
    FulfillmentIssues = "fulfillment-issues",
    Growth = "growth",
    Handshake = "handshake",
    Hierarchy = "hierarchy",
    Home = "home",
    Laptop = "laptop",
    Licenses = "licenses",
    LightBulb = "light-bulb",
    LightbulbError = "lightbulb-error",
    LineChart = "line-chart",
    Link = "link",
    LocationPin = "location-pin",
    Lock = "lock",
    Messaging = "messaging",
    Messages = "messages",
    Microchip = "microchip",
    MissingData = "missing-data",
    MoneyTransfer = "money-transfer",
    Money = "money",
    NoInventoryAccess = "no-inventory-access",
    NoInventory = "no-inventory",
    NoPromote = "no-promote",
    PackageReceived = "package-received",
    Package = "package",
    PaymentProcessing = "payment-processing",
    Phone = "phone",
    PieChart = "pie-chart",
    ProductCycle = "product-cycle",
    Puzzle = "puzzle",
    Receipt = "receipt",
    Retail = "retail",
    SearchingDocument = "searching-document",
    ShoppingBasket = "shopping-basket",
    Shopping = "shopping",
    Sign = "sign",
    Smile = "smile",
    Speed = "speed",
    Time = "time",
    Tools = "tools",
    Truck = "truck",
    User = "user",
    Warehouse = "warehouse",
    Warning = "warning",
    XCircle = "x-circle"
}

export declare type SpotNames = `${SpotName}`;

/**
 * String array of all illustration names
 */
export declare const spotNames: SpotName[];

export 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"
}

export declare type VignetteNames = `${VignetteName}`;

/**
 * String array of all vignette names
 */
export declare const vignetteNames: VignetteName[];

export { }
