import type { ReactNode, Ref } from 'react';
import { useSelect, UseSelectReturnValue } from 'downshift';
import type { ButtonProps } from '../../button';
import type { SystemComponent } from '../../types';
export declare const Dropdown: <T>(props: DropdownProps<T>, ref: Ref<HTMLDivElement>) => JSX.Element;
export { useSelect as useDropdownState };
export { UseSelectReturnValue as UseDropdownReturnValue };
export interface DropdownProps<T> extends SystemComponent, Pick<ButtonProps, 'variant' | 'size' | 'disabled'> {
    /**
     * aria-label. will be visually hidden
     */
    label: string;
    /**
     * return of useDropdownState
     */
    state: UseSelectReturnValue<T>;
    /**
     * array of items
     */
    items: T[];
    /**
     * Custom item rendering
     */
    renderItem?: (item: T | null) => ReactNode;
}
