import * as React$1 from 'react';
import { ButtonHTMLAttributes, InputHTMLAttributes } from 'react';
import { Scope } from '@radix-ui/react-context';
import { B as ButtonProps } from '../../button.types-CokvmCqC.cjs';
import { T as TIconProps } from '../../icon.types-DlJQcXjA.cjs';
import * as react_jsx_runtime from 'react/jsx-runtime';
import 'tailwind-variants';
import 'tailwind-variants/dist/config.js';
import '@raiadrogasil/pulso-design-tokens';
import '@raiadrogasil/pulso-icons';

interface InputMultiSelectQuantity$1 {
    id: string;
    label: string;
    oversized?: boolean;
}
/**
 * Representa as props para o componente InputMultiSelect.
 */
interface InputMultiSelectProps extends ButtonHTMLAttributes<HTMLButtonElement> {
    /**
     * Se o input tem um error.
     */
    hasError?: boolean;
    /**
     * Se o input for somente para leitura.
     */
    readonly?: boolean;
    /**
     * Variante do tamanho do input
     */
    size?: 'md' | 'ml' | 'lg' | 'xl';
}
/**
 * Representa as props para o componente InputMultiSelect.Label.
 */
interface InputMultiSelectLabelProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'className' | 'aria-disable'> {
    /**
     * Elementos filho a ser renderizado dentro do componente.
     */
    children?: React.ReactNode;
}
/**
 * Representa as props para o componente InputMultiSelect.HelperText.
 */
interface InputMultiSelectHelperTextProps extends Omit<React.HTMLProps<HTMLDivElement>, 'className'> {
    /**
     * Se o componente deve renderizar o icone.
     */
    withIcon?: boolean;
    /**
     * Icone apresentado no feedback.
     */
    iconName?: TIconProps['symbol'];
    /**
     * Elementos filho a ser renderizado dentro do componente.
     */
    children?: React.ReactNode;
}
/**
 * Representa as props para o componente InputText.Field.
 */
interface InputMultiSelectFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'disabled' | 'readOnly' | 'className'> {
}
/**
 * Representa as props para o componente InputMultiSelect.Actions.
 */
interface InputMultiSelectActionsProps extends ButtonHTMLAttributes<HTMLButtonElement> {
    selectedItemsQuantity?: number;
}
/**
 * Representa as props para o componente InputMultiSelect.ClearButton.
 */
interface InputMultiSelectClearButtonProps extends Omit<ButtonProps, 'variant' | 'children' | 'className'> {
}
/**
 * Representa as props para o componente InputMultiSelect.Quantity.
 */
interface InputMultiSelectQuantityProps extends Omit<ButtonProps, 'variant' | 'children' | 'className'> {
    labels: InputMultiSelectQuantity$1[];
    removeItem: (id: string) => void;
}
/**
 * Representa as props para o componente InputMultiSelect.Dropdown.
 */
interface InputMultiSelectDropdownProps extends Omit<ButtonProps, 'variant' | 'children' | 'className'> {
    labels: InputMultiSelectQuantity$1[];
    selectedLabels: InputMultiSelectQuantity$1[];
    onCancel: VoidFunction;
    onConfirm: (newSelectedLabels: InputMultiSelectQuantity$1[]) => void;
}
/**
 * Representa as props para o componente InputMultiSelect.Icon.
 */
interface InputMultiSelectIconProps extends Pick<TIconProps, 'symbol' | 'color'> {
}
/**
 * Define o scope do radix-context
 */
type InputMultiSelectScopedProps<P> = P & {
    __scopeInputMultiSelect?: Scope;
};

declare function InputMultiSelectIcon({ __scopeInputMultiSelect, color, ...props }: InputMultiSelectScopedProps<InputMultiSelectIconProps>): react_jsx_runtime.JSX.Element;

declare function InputMultiSelectQuantity({ labels, removeItem, __scopeInputMultiSelect, }: InputMultiSelectScopedProps<InputMultiSelectQuantityProps>): react_jsx_runtime.JSX.Element;

declare const InputMultiSelect: {
    Root: {
        (props: InputMultiSelectScopedProps<InputMultiSelectProps>): react_jsx_runtime.JSX.Element;
        displayName: string;
    };
    Label: (props: InputMultiSelectScopedProps<InputMultiSelectLabelProps>) => react_jsx_runtime.JSX.Element | null;
    HelperText: ({ withIcon, iconName, children, __scopeInputMultiSelect, ...props }: InputMultiSelectScopedProps<InputMultiSelectHelperTextProps>) => react_jsx_runtime.JSX.Element | null;
    Actions: ({ children, __scopeInputMultiSelect, ...props }: InputMultiSelectScopedProps<InputMultiSelectActionsProps>) => react_jsx_runtime.JSX.Element;
    ClearButton: ({ __scopeInputMultiSelect, ...props }: InputMultiSelectScopedProps<InputMultiSelectClearButtonProps>) => react_jsx_runtime.JSX.Element;
    Icon: typeof InputMultiSelectIcon;
    Field: React$1.ForwardRefExoticComponent<InputMultiSelectFieldProps & React$1.RefAttributes<HTMLInputElement>>;
    Quantity: typeof InputMultiSelectQuantity;
    Dropdown: ({ labels, selectedLabels, onCancel, onConfirm, __scopeInputMultiSelect, }: InputMultiSelectScopedProps<InputMultiSelectDropdownProps>) => react_jsx_runtime.JSX.Element;
};

export { InputMultiSelect, type InputMultiSelectProps };
