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

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 ChipProps {
    /**
     * The color for the chip that determines both the text and bg color. Needs to
     * be one of the brand colors in our design system (not a shade).
     */
    colorScheme?: StashColorNames;
    /**
     * The shade of the provided color to use for the background color. This effects the inferred
     * text color unless a specific text color is provided. Currently only `light` and `main`
     * shades are supported. `dark` may be added in the future.
     */
    shade?: 'light' | 'main';
    /**
     * The size of the chip.
     */
    size?: 'small' | 'medium';
    /**
     * The type of border radius to use.
     */
    radius?: 'none' | 'standard' | 'pill';
    /**
     * The background color of the chip. Needs to be one of our design system colors.
     */
    bgColor?: StashColorNamesWithShades;
    /**
     * The color of the chip text. Needs to be one of our design system colors.
     */
    textColor?: StashColorNamesWithShades | 'white';
    /**
     * Determines if a close icon is surfaced.
     */
    isRemovable?: boolean;
    /**
     * Determines if background and text color in Chip should be overidden.
     */
    shouldOverrideColors?: boolean;
    /**
     * Determines if the chip is disabled.
     */
    disabled?: boolean;
}

declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ChipProps>, {
size: string;
radius: string;
colorScheme: string;
shade: string;
bgColor: undefined;
textColor: undefined;
isRemovable: boolean;
shouldOverrideColors: boolean;
disabled: boolean;
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
click: () => void;
remove: () => void;
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ChipProps>, {
size: string;
radius: string;
colorScheme: string;
shade: string;
bgColor: undefined;
textColor: undefined;
isRemovable: boolean;
shouldOverrideColors: boolean;
disabled: boolean;
}>>> & Readonly<{
onRemove?: (() => any) | undefined;
onClick?: (() => any) | undefined;
}>, {
disabled: boolean;
size: "small" | "medium";
colorScheme: StashColorNames;
shade: "main" | "light";
radius: "standard" | "none" | "pill";
bgColor: "ice-700" | "blue-50" | "blue-100" | "blue-200" | "blue-300" | "blue-400" | "blue-500" | "blue-600" | "blue-700" | "blue-800" | "blue-900" | "blue-950" | "red-50" | "red-100" | "red-200" | "red-300" | "red-400" | "red-500" | "red-600" | "red-700" | "red-800" | "red-900" | "red-950" | "green-50" | "green-100" | "green-200" | "green-300" | "green-400" | "green-500" | "green-600" | "green-700" | "green-800" | "green-900" | "green-950" | "royal-50" | "royal-100" | "royal-200" | "royal-300" | "royal-400" | "royal-500" | "royal-600" | "royal-700" | "royal-800" | "royal-900" | "royal-950" | "purple-50" | "purple-100" | "purple-200" | "purple-300" | "purple-400" | "purple-500" | "purple-600" | "purple-700" | "purple-800" | "purple-900" | "purple-950" | "ice-50" | "ice-100" | "ice-200" | "ice-300" | "ice-400" | "ice-500" | "ice-600" | "ice-800" | "ice-900" | "ice-950" | "orange-50" | "orange-100" | "orange-200" | "orange-300" | "orange-400" | "orange-500" | "orange-600" | "orange-700" | "orange-800" | "orange-900" | "orange-950" | "seafoam-50" | "seafoam-100" | "seafoam-200" | "seafoam-300" | "seafoam-400" | "seafoam-500" | "seafoam-600" | "seafoam-700" | "seafoam-800" | "seafoam-900" | "seafoam-950" | "teal-50" | "teal-100" | "teal-200" | "teal-300" | "teal-400" | "teal-500" | "teal-600" | "teal-700" | "teal-800" | "teal-900" | "teal-950" | "yellow-50" | "yellow-100" | "yellow-200" | "yellow-300" | "yellow-400" | "yellow-500" | "yellow-600" | "yellow-700" | "yellow-800" | "yellow-900" | "yellow-950";
textColor: "ice-700" | "blue-50" | "blue-100" | "blue-200" | "blue-300" | "blue-400" | "blue-500" | "blue-600" | "blue-700" | "blue-800" | "blue-900" | "blue-950" | "red-50" | "red-100" | "red-200" | "red-300" | "red-400" | "red-500" | "red-600" | "red-700" | "red-800" | "red-900" | "red-950" | "green-50" | "green-100" | "green-200" | "green-300" | "green-400" | "green-500" | "green-600" | "green-700" | "green-800" | "green-900" | "green-950" | "royal-50" | "royal-100" | "royal-200" | "royal-300" | "royal-400" | "royal-500" | "royal-600" | "royal-700" | "royal-800" | "royal-900" | "royal-950" | "purple-50" | "purple-100" | "purple-200" | "purple-300" | "purple-400" | "purple-500" | "purple-600" | "purple-700" | "purple-800" | "purple-900" | "purple-950" | "ice-50" | "ice-100" | "ice-200" | "ice-300" | "ice-400" | "ice-500" | "ice-600" | "ice-800" | "ice-900" | "ice-950" | "orange-50" | "orange-100" | "orange-200" | "orange-300" | "orange-400" | "orange-500" | "orange-600" | "orange-700" | "orange-800" | "orange-900" | "orange-950" | "seafoam-50" | "seafoam-100" | "seafoam-200" | "seafoam-300" | "seafoam-400" | "seafoam-500" | "seafoam-600" | "seafoam-700" | "seafoam-800" | "seafoam-900" | "seafoam-950" | "teal-50" | "teal-100" | "teal-200" | "teal-300" | "teal-400" | "teal-500" | "teal-600" | "teal-700" | "teal-800" | "teal-900" | "teal-950" | "yellow-50" | "yellow-100" | "yellow-200" | "yellow-300" | "yellow-400" | "yellow-500" | "yellow-600" | "yellow-700" | "yellow-800" | "yellow-900" | "yellow-950" | "white";
isRemovable: boolean;
shouldOverrideColors: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
    default?(_: {}): any;
}>;
export default _default;

export { }
