import { default as React } from 'react';
import { BaseProps } from '../../../libraries/common-types/src/common-types';
export type SelectProps = Omit<BaseProps<"select">, "multiple" | "children"> & {
    label?: string;
    /**
     * Options which will be available in the select input's dropdown menu.
     *
     * For single options:
     *
     * ```
     * [
     *   {
     *     label: "Option 1",
     *     value: "Option 1"
     *   },
     *   {
     *     label: "Option 2",
     *     value: "Option 2"
     *   }
     * ]
     * ```
     * For option groups:
     *
     * ```
     *
     * [
     *   {
     *     label: "Option group 1"
     *     options: [
     *       {
     *         label: "Group 1 option 1",
     *         value: "group 1 option 1"
     *       },
     *       {
     *         label: "Group 1 option 2",
     *         value: "Group 1 option 2"
     *       }
     *     ]
     *   }
     * ]
     * ```
     *
     * _Note! When no value is provided for the option, the label of the option is used as a fallback._
     */
    options: (SelectOption | SelectOptionGroup)[];
    /**
     * Placeholder option for the dropdown (e.g "Select" / "Choose").
     *
     * Use the following format when providing a placeholder:
     *
     * ```
     * {
     *   label: "Placeholder option",
     *   value: "Placeholder value"
     * }
     * ```
     */
    placeholder?: SelectOption;
    readOnly?: boolean;
    errorText?: string;
    helperText?: string;
    /**
     * Use to render select with valid appearance. A check
     * icon will render at the start inside of the input.
     */
    valid?: boolean;
    loading?: boolean;
    negative?: boolean;
};
export type SelectOption = {
    label: string;
    value?: string;
};
export type SelectOptionGroup = {
    label: string;
    options: SelectOption[];
};
export declare const Select: React.ForwardRefExoticComponent<Omit<SelectProps, "ref"> & React.RefAttributes<HTMLSelectElement>>;
//# sourceMappingURL=select.d.ts.map