import React from 'react';
import { OpenChangeReason } from '@floating-ui/react';
import { TypeaheadOptionProps, TypeaheadValue, UseTypeaheadProps } from './types';
type HandleChangeParams = {
    value?: string | number;
    shouldClose?: boolean;
    resetInput?: boolean;
};
export declare const useTypeahead: ({ name, isOpen: isInitOpen, selectedItems: providedSelectedItems, defaultSelectedItems, isDisabled, isMultiple, children, className, startIcon, endIcon, startIconClassName, endIconClassName, validationSchema, error, success, placeholder, filterOptions, autoSelect, allowCustomValues, onChange, onClearAll, onRemoveSelectedClick, onEmptyChange, renderOption, }: UseTypeaheadProps) => {
    isOpen: boolean;
    isDisabled: boolean | undefined;
    optionsWithKey: Record<string | number, TypeaheadOptionProps>;
    selectedItems: TypeaheadValue[];
    inputRef: React.RefObject<HTMLInputElement | null>;
    firstSuggestion: string;
    isMultiple: boolean | undefined;
    typeaheadId: string;
    triggerRef: React.RefObject<HTMLDivElement | null>;
    className: string | undefined;
    startIcon: React.ReactNode;
    endIcon: React.ReactNode;
    startIconClassName: string | undefined;
    endIconClassName: string | undefined;
    name: string;
    inputName: string;
    inputValue: string;
    validationSchema: Record<string, unknown> | undefined;
    status: "error" | "success" | "basic";
    error: import("react-hook-form").FieldError | import("react-hook-form").Merge<import("react-hook-form").FieldError, import("react-hook-form").FieldErrorsImpl<any>> | undefined;
    placeholder: string | null | undefined;
    options: (React.ReactElement<any, string | React.JSXElementConstructor<any>> | null)[];
    customOptionValue: string | null;
    handleChange: ({ value, shouldClose, resetInput, }: HandleChangeParams) => void;
    useFormResult: import("react-hook-form").UseFormReturn<import("react-hook-form").FieldValues, any, import("react-hook-form").FieldValues>;
    register: import("react-hook-form").UseFormRegister<import("react-hook-form").FieldValues>;
    setValue: import("react-hook-form").UseFormSetValue<import("react-hook-form").FieldValues>;
    onChange: ((selectedItem: TypeaheadValue, isSelected: boolean) => void) | undefined;
    handleClearAll: (e: React.MouseEvent) => void;
    handleOpenChange: (open: boolean, event: Event, reason?: OpenChangeReason) => void;
    handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
    handleInputClick: React.MouseEventHandler<HTMLInputElement>;
    handleInputKeyDown: React.KeyboardEventHandler<HTMLInputElement>;
    handleRemoveSelectedClick: (value: string | number) => (e: React.MouseEvent) => void;
};
export type UseTypeaheadResult = ReturnType<typeof useTypeahead>;
export {};
