/*!
 * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */
import { AutocompleteProps as MuiAutocompleteProps } from "@mui/material";
import { HTMLAttributes, Key, ReactNode } from "react";
import { AutocompleteProps } from "../../Autocomplete.js";
export declare const adornmentSizeValues: readonly ["small", "large"];
export type AdornmentSize = (typeof adornmentSizeValues)[number];
export type BaseRenderOptionProps = HTMLAttributes<HTMLLIElement> & {
    key: Key;
};
export type BasePickerProps<OptionType, HasMultipleChoices extends boolean | undefined, IsCustomValueAllowed extends boolean | undefined> = AutocompleteProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {
    adornmentSize?: AdornmentSize;
    emptyOptionsText?: MuiAutocompleteProps<OptionType, HasMultipleChoices, undefined, IsCustomValueAllowed>["noOptionsText"];
    groupOptionsBy?: MuiAutocompleteProps<OptionType, HasMultipleChoices, undefined, IsCustomValueAllowed>["groupBy"];
};
export type BasePickerType = {
    displayName: string;
    <OptionType, HasMultipleChoices extends boolean | undefined, IsCustomValueAllowed extends boolean | undefined>(props: BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>): ReactNode;
};
export type ComposablePickerProps<OptionType, HasMultipleChoices extends boolean | undefined, IsCustomValueAllowed extends boolean | undefined> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {
    getOptionLabel?: MuiAutocompleteProps<OptionType, HasMultipleChoices, undefined, IsCustomValueAllowed>["getOptionLabel"];
    renderOption: MuiAutocompleteProps<OptionType, HasMultipleChoices, undefined, IsCustomValueAllowed>["renderOption"];
    renderTags?: MuiAutocompleteProps<OptionType, HasMultipleChoices, undefined, IsCustomValueAllowed>["renderTags"];
};
declare const ComposablePicker: <OptionType, HasMultipleChoices extends boolean | undefined, IsCustomValueAllowed extends boolean | undefined>({ ariaDescribedBy, defaultValue, emptyOptionsText, errorMessage, errorMessageList, getIsOptionEqualToValue, getOptionLabel, groupOptionsBy, hasMultipleChoices, id: idOverride, inputValue, isCustomValueAllowed, isDisabled, isFullWidth, isLoading, isOptional, isReadOnly, isVirtualized, hint, HintLinkComponent, label, name: nameOverride, onBlur, onChange, onInputChange, onFocus, options, renderOption, renderTags, value, testId, translate, }: ComposablePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => import("@emotion/react/jsx-runtime").JSX.Element;
declare const MemoizedComposablePicker: typeof ComposablePicker;
export { MemoizedComposablePicker as ComposablePicker };
//# sourceMappingURL=ComposablePicker.d.ts.map