import { ListboxItemType } from '../../../components/Listbox';
import { default as Popover } from '../../../internal/components/Popover';
import { ToolbarItemAppearance } from './types';
import { DataTrackingId } from '../../../types';
/**
 * Type for items in the ToolbarSelect dropdown
 * @extends ItemType<T & { id: string }>
 */
type ToolbarSelectItem<T = Record<string, unknown>> = ListboxItemType<T & {
    id: string;
}>;
/**
 * Props for the ToolbarSelect component
 * @extends Omit<React.ComponentPropsWithoutRef<typeof Popover.Button>, "appearance" | "onChange">
 */
export type ToolbarSelectProps<T = Record<string, unknown>> = Omit<React.ComponentPropsWithoutRef<typeof Popover.Button>, "appearance" | "onChange"> & {
    /**
     * Visual appearance of the select button
     * @default ghost
     */
    appearance?: ToolbarItemAppearance;
    /**
     * Callback function when selection changes
     */
    onChange?: (optionId: string) => void;
    /**
     * Currently selected item ID (controlled mode)
     */
    selected?: string;
    /**
     * Array of selectable items
     */
    items: ToolbarSelectItem<T>[];
    /**
     * Accessible label for the select dropdown dialog (e.g. "Status options").
     */
    accessibleLabel: string;
} & DataTrackingId;
/**
 * ToolbarSelect component provides a dropdown selector within a toolbar.
 *
 * Features:
 * - Dropdown menu with selectable options
 * - Controlled and uncontrolled usage patterns
 * - Automatic overflow menu integration
 * - Accessibility support with proper ARIA labels
 * - Ghost and primary appearance options
 * - Dropdown arrow icon indicator
 * - Listbox integration for keyboard navigation
 *
 * @example
 * <ToolbarSelect
 *   items={fontOptions}
 *   selected="arial"
 *   accessibleLabel="Font family"
 *   onChange={(id) => setFont(id)}
 * />
 *
 * @example
 * <ToolbarSelect
 *   appearance="primary"
 *   items={colorOptions}
 *   accessibleLabel="Text color"
 * />
 */
export declare const ToolbarSelect: import('react').ForwardRefExoticComponent<Omit<Omit<Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "children"> & import('../../..').LayoutUtilProps & DataTrackingId & {
    aiMark?: boolean | import('../../..').AiIconName;
    appearance?: import('../../..').ButtonAppearance;
    size?: Extract<import('../../..').Size, "xsmall" | "small" | "medium" | "large">;
    loading?: boolean;
} & {
    children?: import('react').ComponentPropsWithoutRef<"button">["children"];
    icon?: import('../../..').IconProps["svg"] | {
        after: import('../../..').IconProps["svg"];
    } | {
        before: import('../../..').IconProps["svg"];
    };
} & import('react').RefAttributes<HTMLButtonElement>, "ref"> | Omit<Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "children"> & import('../../..').LayoutUtilProps & DataTrackingId & {
    aiMark?: boolean | import('../../..').AiIconName;
    appearance?: import('../../..').ButtonAppearance;
    size?: Extract<import('../../..').Size, "xsmall" | "small" | "medium" | "large">;
    loading?: boolean;
} & {
    children?: never;
    icon?: import('../../..').IconProps["svg"];
} & import('react').RefAttributes<HTMLButtonElement>, "ref">, "onChange" | "appearance"> & {
    /**
     * Visual appearance of the select button
     * @default ghost
     */
    appearance?: ToolbarItemAppearance;
    /**
     * Callback function when selection changes
     */
    onChange?: (optionId: string) => void;
    /**
     * Currently selected item ID (controlled mode)
     */
    selected?: string;
    /**
     * Array of selectable items
     */
    items: ToolbarSelectItem<Record<string, unknown>>[];
    /**
     * Accessible label for the select dropdown dialog (e.g. "Status options").
     */
    accessibleLabel: string;
} & DataTrackingId & import('react').RefAttributes<HTMLButtonElement>>;
export {};
