import React from "react";
import { type AutocompleteRebuiltProps, type MenuItem, type OptionLike } from "../Autocomplete.types";
export declare function Wrapper<T extends OptionLike>({ initialValue, initialInputValue, onChange, onInputChange, onBlur, onFocus, onOpen, onClose, menu, openOnFocus, filterOptions, emptyActions, customRenderOption, customRenderAction, customRenderSection, customRenderInput, customRenderHeader, customRenderFooter, loading, customRenderLoading, emptyStateMessage, ref, readOnly, UNSAFE_className, UNSAFE_styles, debounce, ...props }: {
    readonly initialValue?: T;
    readonly initialInputValue?: string;
    readonly onChange?: (v: T | undefined) => void;
    readonly onInputChange?: (v: string) => void;
    readonly onBlur?: () => void;
    readonly onFocus?: () => void;
    readonly onOpen?: () => void;
    readonly onClose?: () => void;
    readonly menu?: MenuItem<T>[];
    readonly openOnFocus?: boolean;
    readonly filterOptions?: false | ((opts: T[], input: string) => T[]);
    readonly emptyActions?: AutocompleteRebuiltProps<T, false>["emptyActions"];
    readonly customRenderOption?: AutocompleteRebuiltProps<T, false>["customRenderOption"];
    readonly customRenderAction?: AutocompleteRebuiltProps<T, false>["customRenderAction"];
    readonly customRenderInput?: AutocompleteRebuiltProps<T, false>["customRenderInput"];
    readonly customRenderHeader?: AutocompleteRebuiltProps<T, false>["customRenderHeader"];
    readonly customRenderFooter?: AutocompleteRebuiltProps<T, false>["customRenderFooter"];
    readonly customRenderSection?: AutocompleteRebuiltProps<T, false>["customRenderSection"];
    readonly loading?: boolean;
    readonly customRenderLoading?: React.ReactNode;
    readonly emptyStateMessage?: React.ReactNode;
    readonly ref?: React.Ref<HTMLInputElement | HTMLTextAreaElement>;
    readonly UNSAFE_className?: AutocompleteRebuiltProps<T, false>["UNSAFE_className"];
    readonly UNSAFE_styles?: AutocompleteRebuiltProps<T, false>["UNSAFE_styles"];
    readonly readOnly?: boolean;
    readonly clearable?: AutocompleteRebuiltProps<T, false>["clearable"];
    readonly debounce?: number;
    readonly disabled?: boolean;
}): React.JSX.Element;
export declare function FreeFormWrapper({ initialValue, initialInputValue, onChange, onInputChange, menu, openOnFocus, inputEqualsOption, debounce, }: {
    readonly initialValue?: OptionLike;
    readonly initialInputValue?: string;
    readonly onChange?: (v: OptionLike | undefined) => void;
    readonly onInputChange?: (v: string) => void;
    readonly menu?: MenuItem<OptionLike>[];
    readonly openOnFocus?: boolean;
    readonly inputEqualsOption?: (input: string, option: OptionLike) => boolean;
    readonly debounce?: number;
}): React.JSX.Element;
/**
 * Stateful wrapper for testing multiple-selection behavior.
 * Manages both value (array) and inputValue internally so tests
 * can perform multiple interactions that build on each other.
 *
 * When allowFreeForm is true, uses createFreeFormValue if provided,
 * otherwise defaults to (input) => ({ label: input }).
 */
export declare function MultipleWrapper<T extends OptionLike>({ initialValue, initialInputValue, onChange, onInputChange, menu, disabled, readOnly, debounce, customRenderValue, clearable, allowFreeForm, createFreeFormValue, onBlur, UNSAFE_className, UNSAFE_styles, limitVisibleSelections, limitSelectionText, }: MultipleWrapperProps<T>): React.JSX.Element;
interface MultipleWrapperProps<T extends OptionLike> {
    readonly initialValue?: T[];
    readonly initialInputValue?: string;
    readonly onChange?: (v: T[]) => void;
    readonly onInputChange?: (v: string) => void;
    readonly menu?: MenuItem<T>[];
    readonly debounce?: number;
    readonly disabled?: boolean;
    readonly readOnly?: boolean;
    readonly customRenderValue?: AutocompleteRebuiltProps<T, true>["customRenderValue"];
    readonly clearable?: AutocompleteRebuiltProps<T, true>["clearable"];
    readonly allowFreeForm?: boolean;
    readonly createFreeFormValue?: (input: string) => T;
    readonly onBlur?: () => void;
    readonly UNSAFE_className?: AutocompleteRebuiltProps<T, true>["UNSAFE_className"];
    readonly UNSAFE_styles?: AutocompleteRebuiltProps<T, true>["UNSAFE_styles"];
    readonly limitVisibleSelections?: number;
    readonly limitSelectionText?: (truncatedCount: number) => string;
}
/**
 * Wrapper for testing focus and blur behavior with tabbable siblings
 * Includes tabbable elements before and after the autocomplete
 * so tests can use tab navigation to focus without clicking
 */
export declare function FocusableSiblingsWrapper<T extends OptionLike>({ onFocus, onOpen, onClose, onChange, onInputChange, menu, readOnly, openOnFocus, }: {
    readonly onChange?: (v: T | undefined) => void;
    readonly onInputChange?: (v: string) => void;
    readonly menu?: MenuItem<T>[];
    readonly readOnly?: boolean;
    readonly onFocus?: () => void;
    readonly onOpen?: () => void;
    readonly onClose?: () => void;
    readonly openOnFocus?: boolean;
}): React.JSX.Element;
export {};
