import type { Ref, ReactNode, ChangeEventHandler } from 'react';
import type { Action, BaseProps, ForwardRefForwardPropsComponent, TestIdProp } from '../../types';
import type { FormControlProps } from '../FormControl';
export interface SelectProps extends BaseProps, TestIdProp {
    /** Pass Options components as children to render the options of the Select list. */
    children: ReactNode;
    /** Called when an Option is chosen within the list. */
    onChange?: ChangeEventHandler<HTMLSelectElement>;
    /** Callback fired when AI suggestion is accepted/rejected */
    onResolveSuggestion?: FormControlProps['onResolveSuggestion'];
    /**
     * Sets DOM id for the control and associates label element via 'for' attribute.
     * If an id is not pass, a random id will be generated for any render.
     */
    id?: FormControlProps['id'];
    /** Set visual state based on a validation state. */
    status?: FormControlProps['status'];
    /** Pass a string or a fragment with an Icon and string. */
    label?: FormControlProps['label'];
    /** Visually hides the label region. */
    labelHidden?: FormControlProps['labelHidden'];
    /** It is recommended to pass a simple string to offer guidance. Text will be styled based on status prop. */
    info?: FormControlProps['info'];
    /** Indicate if the field is required. The browser defaults to false. */
    required?: FormControlProps['required'];
    /**
     * Creates a controlled input and sets the value. Requires an onChange handler to update value.
     * value + onChange is the recommended method per React team.
     */
    value?: FormControlProps['value'];
    /** Disable the control. The browser defaults to false. */
    disabled?: FormControlProps['disabled'];
    /** Makes the input non editable and non clickable. The browser defaults to false. */
    readOnly?: FormControlProps['readOnly'];
    /** Sets html name attribute for the underlying control. Useful for mapping to a data field. */
    name?: FormControlProps['name'];
    /** Pass an array of Action objects to append button(s) inline with the Select. */
    actions?: Action[];
    /** Pass a heading and content to show additional information on the field. */
    additionalInfo?: FormControlProps['additionalInfo'];
    /** A ref to the select element. */
    ref?: Ref<HTMLSelectElement>;
}
export declare const StyledSelect: import("styled-components").StyledComponent<"select", import("styled-components").DefaultTheme, {
    status: boolean;
    readOnly: boolean;
}, never>;
declare const _default: ForwardRefForwardPropsComponent<SelectProps> & {
    getTestIds: (testIdProp?: TestIdProp["testId"]) => import("../../types").TestIdsRecord<readonly ["control", "label", "info", "additional-info", "suggestion-accept", "suggestion-reject"]>;
};
export default _default;
//# sourceMappingURL=Select.d.ts.map