import React from 'react';
import { Command as CommandPrimitive } from 'cmdk';
export type AutocompleteContextType = React.HtmlHTMLAttributes<HTMLInputElement> & {
    /** Fields expected on simple Input */
    value: string | string[] | [];
    onValueChange: (values: string[]) => void;
    readOnly?: boolean;
    disabled?: boolean;
    /** Internal control logic */
    showValue?: boolean;
    handleChange: (value?: string) => void;
    handleClear: () => void;
    onScrollbar?: boolean;
    setOnScrollbar: (onScrollbar: boolean) => void;
    open?: boolean;
    setOpen: (open: boolean) => void;
    options: Record<string, string>;
    addOption: (option: Record<string, string>) => void;
    /** Component References */
    inputRef: React.RefObject<HTMLInputElement | null>;
};
export type AutocompleteTriggerProps = React.ComponentProps<'div'> & {
    onClear?: () => void;
};
export declare function AutocompleteTrigger({ ref, className, onClear, children }: AutocompleteTriggerProps): React.JSX.Element;
export declare function AutocompleteValue({ ref, className, value: valueProp, onValueChange, onBlur, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>): React.JSX.Element;
export declare function AutocompleteMultipleValue({ ref, className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>): React.JSX.Element;
export declare function AutocompleteEmpty({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>): React.JSX.Element | null;
export declare function AutocompleteLoading({ className, ref, ...props }: React.ComponentProps<typeof CommandPrimitive.Loading>): React.JSX.Element;
export declare const SIDE_OPTIONS: string[];
type Side = (typeof SIDE_OPTIONS)[number];
export type AutocompleteContentProps = React.ComponentProps<typeof CommandPrimitive.List> & {
    position?: 'popper' | 'static';
    side?: Side;
    onPointerDownOutside?: (event: MouseEvent | TouchEvent) => void;
};
export declare function AutocompleteContent({ className, position, side, ref, children, onMouseEnter, onMouseLeave, onPointerDownOutside, ...props }: AutocompleteContentProps): React.JSX.Element | null;
export declare function AutocompleteGroup({ className, ...props }: React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>): React.JSX.Element;
export declare function AutocompleteItem({ className, value, onSelect, ...props }: React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>): React.JSX.Element;
export type AutocompleteProps = React.ComponentProps<typeof CommandPrimitive> & {
    value?: string | string[] | [];
    defaultValue?: string | string[] | [];
    onValueChange?: (values: string | string[]) => void;
    onClear?: () => void;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    showValue?: boolean;
    readOnly?: boolean;
    disabled?: boolean;
    multiple?: boolean;
};
export declare function Autocomplete({ ref, value, defaultValue, onValueChange, onClear, className, open: openProp, onOpenChange, showValue, readOnly, disabled, multiple, onKeyDown, children, ...props }: AutocompleteProps): React.JSX.Element;
export {};
//# sourceMappingURL=index.d.ts.map