import * as React$1 from 'react';
import React__default, { InputHTMLAttributes } from 'react';
import { Scope } from '@radix-ui/react-context';
import { T as TIconProps } from '../../icon.types-DlJQcXjA.cjs';
import { C as ContentProps } from '../../index-CUN3bZ0a.cjs';
import * as react_jsx_runtime from 'react/jsx-runtime';
import '@raiadrogasil/pulso-design-tokens';
import '@raiadrogasil/pulso-icons';

type SelectSize = 'md' | 'ml' | 'lg' | 'xl';
/**
 * Representa as props para o componente InputSelect.
 *
 * Essa interface estende as atributos padrão do HTML input, excluindo 'size' e 'id' para acomodar propriedades de tamanho e id personalizadas.
 * Ela também inclui propriedades adicionais específicas do componente InputSelect.
 */
interface SelectProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'id'> {
    /**
     * O id do input.
     */
    id?: string;
    /**
     * Indica se o input tem um erro.
     */
    hasError?: boolean;
    /**
     * Indica se o input é um componente filho.
     */
    asChild?: boolean;
    /**
     * A variante de tamanho do input.
     */
    size?: SelectSize;
    /**
     * A variante dos dados do OptionMenu.
     */
    options: ContentProps[];
    /**
     * A altura do OptionMenu.
     */
    optionsHeight?: number | string;
}
/**
 * Representa as props para o componente Select.Label.
 *
 * Essa interface inclui propriedades específicas do componente Select.Label.
 */
interface SelectLabelProps {
    htmlFor: string;
    children: React__default.ReactNode;
}
interface SelectFieldContainerProps {
    children: React__default.ReactNode;
}
/**
 * Representa as props para o componente Select.HelperSelect.
 *
 * Essa interface inclui propriedades específicas do componente Select.HelperSelect.
 */
interface SelectHelperTextProps {
    /**
     * Indica se o componente deve renderizar o ícone.
     */
    withIcon?: boolean;
    /**
     * O ícone exibido no feedback.
     */
    iconName?: TIconProps['symbol'];
    children: React__default.ReactNode;
}
/**
 * Representa as props para o componente Select.Actions.
 *
 * Essa interface inclui propriedades específicas do componente Select.Actions.
 */
interface SelectActionsProps {
    children?: React__default.ReactNode;
}
/**
 * Representa as props para o componente Select.Icon.
 *
 * Essa interface inclui propriedades específicas do componente Select.Icon.
 */
interface SelectIconProps extends Pick<TIconProps, 'symbol' | 'color'> {
}
/**
 * Define o escopo do radix-context
 */
type SelectScopedProps<P> = P & {
    __scopeInputSelect?: Scope;
};

declare function SelectIcon({ __scopeInputSelect, color, ...props }: SelectScopedProps<SelectIconProps>): react_jsx_runtime.JSX.Element;

declare const Select: {
    Root: {
        (props: SelectScopedProps<SelectProps>): react_jsx_runtime.JSX.Element;
        displayName: string;
    };
    Label: ({ htmlFor, __scopeInputSelect, children, }: SelectScopedProps<SelectLabelProps>) => react_jsx_runtime.JSX.Element;
    FieldContainer: ({ __scopeInputSelect, children, }: SelectScopedProps<SelectFieldContainerProps>) => react_jsx_runtime.JSX.Element;
    Icon: typeof SelectIcon;
    Field: React$1.ForwardRefExoticComponent<Omit<React$1.SelectHTMLAttributes<HTMLSelectElement>, "size"> & {
        children?: React.ReactNode;
        placeholder?: string;
        optionMaxHeight?: number | string;
        onChangeSelectionValue?(value: string): void;
    } & React$1.RefAttributes<HTMLDivElement>>;
    Actions: React$1.FC<SelectActionsProps>;
    HelperText: ({ withIcon, iconName, __scopeInputSelect, children, ...props }: SelectScopedProps<SelectHelperTextProps>) => react_jsx_runtime.JSX.Element | null;
};

export { Select, type SelectProps };
