import { HTMLAttributes, ReactNode } from 'react';
import { PopoverProps } from '@radix-ui/react-popover';
import { HorizontalDirection } from '../../types';
import { ImageName } from '../Icon';
type DivProps = HTMLAttributes;
interface SelectItemComponentProps extends Omit {
separator?: boolean;
disabled?: boolean;
onSelect?: (value: string) => void;
value: string;
icon?: ImageName;
iconDir?: HorizontalDirection;
}
type SelectItemChildren = {
children: ReactNode;
label?: never;
};
type SelectItemLabel = {
children?: never;
label: ReactNode;
};
export interface SelectGroupProps extends Omit, 'heading'> {
heading: ReactNode;
value?: never;
onSelect?: never;
}
export interface SelectOptionItem extends Omit {
heading?: never;
label: ReactNode;
[key: `data-${string}`]: string;
}
interface SelectGroupOptionItem extends Omit {
options: SelectOptionItem[];
label?: never;
[key: `data-${string}`]: string;
}
export type AutoCompleteOptionListItem = SelectGroupOptionItem | SelectOptionItem;
export type SelectItemProps = SelectItemComponentProps & (SelectItemChildren | SelectItemLabel);
type SelectOptionType = {
options: AutoCompleteOptionListItem[];
children?: never;
};
type SelectChildrenType = {
children: ReactNode;
options?: never;
};
interface Props extends PopoverProps, Omit {
onSelect?: (value: string) => void;
value?: string;
placeholder?: string;
onOpenChange?: (open: boolean) => void;
label?: ReactNode;
container?: HTMLElement | null;
error?: ReactNode;
disabled?: boolean;
dir?: 'start' | 'end';
orientation?: 'horizontal' | 'vertical';
allowCreateOption?: boolean;
}
export type AutoCompleteProps = (SelectOptionType & Props) | (SelectChildrenType & Props);
export declare const SelectPopoverRoot: import('react').FC;
export declare const AutoComplete: {
({ onSelect: onSelectProp, options, children, onOpenChange: onOpenChangeProp, disabled, value, placeholder, container, ...props }: AutoCompleteProps): import("react/jsx-runtime").JSX.Element;
Group: import('react').ForwardRefExoticComponent>;
Item: import('react').ForwardRefExoticComponent>;
};
export declare const Group: import('react').ForwardRefExoticComponent>;
export declare const Item: import('react').ForwardRefExoticComponent>;
export {};