import * as _raiadrogasil_pulso_icons from '@raiadrogasil/pulso-icons';
import { IconName } from '@raiadrogasil/pulso-icons';
import * as React$1 from 'react';
import { ReactNode } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';

type InputSelectSize = 'md' | 'ml' | 'lg' | 'xl';

type InputSelectProps = {
    label?: string;
    leftIcon?: IconName;
    options: string[];
    size?: InputSelectSize;
    placeholder?: string;
    disabled?: boolean;
    readonly?: boolean;
    error?: boolean;
    hasFeedbackMessage?: boolean;
    feedbackMessage?: string;
    iconFeedback?: IconName;
    onChange?: (value: string | undefined) => void;
    children?: ReactNode;
};

interface InputSelectLeftIconProps {
    icon: InputSelectProps['leftIcon'];
    size?: InputSelectProps['size'];
    disabled?: boolean;
    readonly?: boolean;
}

declare const InputSelect: {
    Root: React$1.ForwardRefExoticComponent<InputSelectProps & React$1.RefAttributes<HTMLButtonElement>>;
    Label: ({ children, size, disabled, readonly, }: {
        children: string;
        size?: InputSelectProps["size"];
        disabled?: boolean;
        readonly?: boolean;
    }) => react_jsx_runtime.JSX.Element;
    LeftIcon: React$1.FC<InputSelectLeftIconProps>;
    ClearButton: ({ selectedValue, onClear, disabled, readonly, size, label, }: {
        selectedValue?: string;
        onClear: (event: React.MouseEvent | React.KeyboardEvent) => void;
        disabled?: boolean;
        readonly?: boolean;
        size: InputSelectSize;
        label?: InputSelectSize | false;
    }) => react_jsx_runtime.JSX.Element | null;
    HelperText: ({ icon, children, disabled, readonly, error, }: {
        icon?: _raiadrogasil_pulso_icons.IconName;
        children: React.ReactNode;
        disabled?: boolean;
        readonly?: boolean;
        error?: boolean;
    }) => react_jsx_runtime.JSX.Element;
};

export { InputSelect, type InputSelectProps };
