import { LucideIcon } from "lucide-react";
import { FocusEvent } from "react";
type SelectProps = {
    name: string;
    options: {
        label: string;
        value: string;
    }[];
    id?: string;
    value?: string;
    defaultValue?: string;
    showAsterisk?: boolean;
    label?: string;
    errorMessage?: string;
    placeholder?: string;
    notFoundText?: string;
    className?: string;
    disabled?: boolean;
    readOnly?: boolean;
    isLoading?: boolean;
    isSearchable?: boolean;
    closeOnSelect?: boolean;
    onSearch?: (value: string) => void;
    onChange?: (value: string) => void;
    onFocus?: () => void;
    onBlur?: (e: FocusEvent<HTMLDivElement>) => void;
    size?: "md" | "lg";
    variant?: "solid" | "outline" | "underline";
    prefix?: string | LucideIcon;
    leftIcon?: LucideIcon;
    optionMaxHeight?: number;
};
/**
 * Select component - used for selecting sle options from a dropdown list with support for search, labels, and validation
 *
 * @param props - Select component properties
 * @param props.name - Required field name for form handling
 * @param props.options - Array of options with label and value properties
 * @param props.id - Optional unique identifier for the component
 * @param props.value - Controlled value of selected option
 * @param props.defaultValue - Default selected value. Default: ""
 * @param props.showAsterisk - Whether to show asterisk on label for required fields
 * @param props.label - Optional label text to display above the select
 * @param props.errorMessage - Error message to display below the select
 * @param props.placeholder - Placeholder text when no options are selected. Default: "Selecione..."
 * @param props.notFoundText - Text to display when no options match search. Default: "Sem opções disponíveis"
 * @param props.className - Additional CSS classes to apply
 * @param props.disabled - Whether the select is disabled. Default: false
 * @param props.readOnly - Whether the select is read-only. Default: false
 * @param props.isLoading - Controls loading state with spinner. Default: false
 * @param props.isSearchable - Whether the select supports search functionality. Default: false
 * @param props.closeOnSelect - Whether to close dropdown after selecting an option. Default: true
 * @param props.onSearch - Callback function called when search value changes
 * @param props.onChange - Callback function called when selected value changes
 * @param props.onFocus - Callback function called when select gains focus
 * @param props.onBlur - Callback function called when select loses focus
 * @param props.size - Select size. Default: "md"
 * @param props.variant - Visual variant of the select. Default: "solid"
 * @param props.prefix - Text or icon to display at the beginning of the select
 * @param props.leftIcon - Optional icon to display on the left side
 * @param props.optionMaxHeight - Maximum height for the options dropdown
 *
 * @returns Select JSX element wrapped in FieldWrapper with optional label and error
 *
 * @example
 * ```tsx
 * // Basic select
 * <Select
 *   name="category:"
 *   options={[
 *     { label: "Technology", value: "tech" },
 *     { label: "Design", value: "design" },
 *     { label: "Marketing", value: "marketing" }
 *   ]}
 * />
 *
 * // Select with label and validation
 * <Select
 *   name="skill"
 *   label="Select your skill:"
 *   showAsterisk
 *   errorMessage="Please select at least one skill"
 *   options={skillOptions}
 *   placeholder="Choose your skills..."
 * />
 *
 * // Searchable select with custom styling
 * <Select
 *   name="country"
 *   label="Country:"
 *   isSearchable
 *   variant="outline"
 *   size="lg"
 *   leftIcon={GlobeIcon}
 *   options={countryOptions}
 *   notFoundText="No countries found"
 * />
 *
 * // Controlled select with callbacks
 * <Select
 *   name="tag"
 *   label="Tag:"
 *   value={selectedTag}
 *   onChange={setSelectedTag}
 *   onSearch={handleSearch}
 *   closeOnSelect={false}
 *   isLoading={isLoadingTags}
 *   options={tagOptions}
 * />
 *
 * // Select with prefix and custom behavior
 * <Select
 *   name="department"
 *   label="Department:"
 *   prefix="Dept:"
 *   closeOnSelect={true}
 *   variant="underline"
 *   defaultValue="hr"
 *   options={departmentOptions}
 * />
 * ```
 */
declare function Select(props: SelectProps): import("react/jsx-runtime").JSX.Element;
export { Select };
//# sourceMappingURL=index.d.ts.map