/// <reference types="react" />
import * as react_jsx_runtime from 'react/jsx-runtime';
import { ButtonProps as ButtonProps$1, SelectProps as SelectProps$1, ListBoxItemProps as ListBoxItemProps$1, TagProps as TagProps$1, TagGroupProps as TagGroupProps$1, TagListProps as TagListProps$1 } from 'react-aria-components';
import React$1 from 'react';

interface ButtonProps extends ButtonProps$1 {
    size?: "small" | "medium";
    variant?: "primary" | "secondary" | "tertiary" | "link";
    danger?: boolean;
    isIconButton?: boolean;
}
declare function Button({ size, variant, danger, isIconButton, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;

interface ListBoxItemProps extends ListBoxItemProps$1 {
    /** Text label for the option. Provide an `id` if this is not unique. */
    label: string;
    /** Descriptive text that appears below the option's label */
    description?: string;
    /** Marks an option visually with red text to indicate danger */
    isDestructive?: boolean;
    /** Left icon slot */
    iconLeft?: React$1.ReactElement;
    /** Right icon slot */
    iconRight?: React$1.ReactElement;
}
interface SelectionSectionProps {
    /** Display name for the section */
    header?: string;
    items: ListBoxItemProps[];
}
interface SelectProps<T extends object> extends SelectProps$1<T> {
    items?: ListBoxItemProps[];
    sections?: SelectionSectionProps[];
    /** Text label for the Select component */
    label?: string;
    /** Defaults to `medium` */
    size?: "small" | "medium";
}
declare function Select<T extends object>({ items, sections, label, size, ...props }: SelectProps<T>): react_jsx_runtime.JSX.Element;

interface SelectItemProps extends ListBoxItemProps$1 {
    /** Text label for the option. Provide an `id` if this is not unique. */
    label: string;
    /** Descriptive text that appears below the option's label */
    description?: string;
    /** Marks an option visually with red text to indicate danger */
    isDestructive?: boolean;
    /** Left icon slot */
    iconLeft?: React$1.ReactElement;
    /** Right icon slot */
    iconRight?: React$1.ReactElement;
}
declare function SelectItem({ description, id, iconLeft, iconRight, isDestructive, label, }: SelectItemProps): react_jsx_runtime.JSX.Element;

interface TagProps extends TagProps$1 {
    icon?: React.ReactNode;
    color?: "bc-blue" | "bc-gold" | "blue" | "dark" | "gray" | "grey" | "green" | "red" | "yellow";
}
declare function Tag({ className, color, icon, id, textValue, }: TagProps): react_jsx_runtime.JSX.Element;

interface TagGroupProps extends TagGroupProps$1 {
    label?: string;
    description?: string;
    errorMessage?: string;
}
declare function TagGroup({ children, label, description, errorMessage, ...props }: TagGroupProps): react_jsx_runtime.JSX.Element;

interface TagListProps<T> extends Pick<TagListProps$1<T>, "children" | "renderEmptyState"> {
    items: TagProps[];
    orientation?: "horizontal" | "vertical";
}
declare function TagList<T extends object>({ items, orientation, renderEmptyState, ...props }: TagListProps<T>): react_jsx_runtime.JSX.Element;

export { Button, Select, SelectItem, Tag, TagGroup, TagList };
