import { Dispatch, SetStateAction } from 'react';
import { UseComboboxProps as UseDownshiftComboboxProps, UseMultipleSelectionProps as UseDownshiftMultipleSelectionProps } from 'downshift';
import { AvatarProps } from '../Avatar';
import { DataTrackingId, DistributiveOmit } from '../../types';
import { FieldLabelProps } from '../FieldLabel';
import { IconProps } from '../Icon';
import { SelectTriggerBaseProps } from './internal/SelectTriggerBase';
export type SelectTriggerProps<Item> = DistributiveOmit<SelectTriggerBaseProps<Item>, "prefix" | "selectedItem" | "selectedItems" | "onChange"> & Pick<FieldLabelProps, "required" | "moreInfo"> & Pick<UseDownshiftComboboxProps<Item>, "itemToString" | "itemToKey"> & DataTrackingId & {
    prefix?: string | {
        icon: DistributiveOmit<IconProps, "size">;
    } | {
        avatar: DistributiveOmit<AvatarProps, "size">;
    };
} & ({
    multiple?: never;
    onChange?: Dispatch<SetStateAction<Item | null>> | ((arg: Item | null) => void);
    selectedItem: UseDownshiftComboboxProps<Item>["selectedItem"];
    selectedItems?: never;
} | {
    multiple: true;
    onChange?: Dispatch<SetStateAction<Item[] | null>> | ((arg: Item[] | null) => void);
    selectedItem?: never;
    selectedItems: UseDownshiftMultipleSelectionProps<Item>["selectedItems"];
});
/**
 * SelectTrigger component — a field-styled button for opening a custom
 * select-like menu (e.g. paired with `Combobox.Content` or a custom
 * popover), for building select components that need a trigger different
 * from `SelectMenu`'s built-in one.
 *
 * Features:
 * - Single (`selectedItem`) or multiple (`selectedItems`) selection display
 * - Optional prefix as text, an icon, or an avatar
 * - Label, hint, description, error, and required-field messaging
 * - Full accessibility support via `FieldLabel`
 *
 * @example
 * <SelectTrigger
 *   label="Assignee"
 *   selectedItem={selected}
 *   itemToString={(item) => item?.name ?? ""}
 * />
 */
export declare const SelectTrigger: <Item = any>(props: SelectTriggerProps<Item>) => import("react/jsx-runtime").JSX.Element;
