import React from "react";
import { type FormFieldType } from "../../useFormField";
import type { ComboboxProps } from "../types";
interface InputContextValue extends FormFieldType {
    clearInput: NonNullable<ComboboxProps["onClear"]>;
    error?: ComboboxProps["error"];
    focusInput: () => void;
    inputRef: React.RefObject<HTMLInputElement | null>;
    value: string;
    setValue: (text: string) => void;
    onChange: (newValue: string) => void;
    searchTerm: string;
    setSearchTerm: React.Dispatch<React.SetStateAction<string>>;
    shouldAutocomplete?: boolean;
    toggleOpenButtonRef: React.MutableRefObject<HTMLDivElement | null>;
    hideCaret: boolean;
    setHideCaret: React.Dispatch<React.SetStateAction<boolean>>;
    anchorRef: HTMLDivElement | null;
    setAnchorRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;
}
declare const useInputContext: <S extends boolean = true>(strict?: S | undefined, errorMessageOverride?: string) => S extends true ? InputContextValue : InputContextValue | undefined;
interface Props {
    children: React.ReactNode;
    value: {
        defaultValue: ComboboxProps["defaultValue"];
        description: ComboboxProps["description"];
        disabled: ComboboxProps["disabled"];
        readOnly: ComboboxProps["readOnly"];
        error: ComboboxProps["error"];
        errorId: ComboboxProps["errorId"];
        id: ComboboxProps["id"];
        value: ComboboxProps["value"];
        onChange: ComboboxProps["onChange"];
        onClear: ComboboxProps["onClear"];
        shouldAutocomplete: ComboboxProps["shouldAutocomplete"];
        size: ComboboxProps["size"];
    };
}
declare const InputProvider: ({ children, value: props }: Props) => React.JSX.Element;
export { InputProvider as InputContextProvider, useInputContext };
