import './SelectDropdown.css';
import React from 'react';
import { SelectAllItem } from '../../../utils/getGroups';
import { GetOptionPropsResult, OptionForCreate, OptionProps } from '../../../hooks/useSelect/useSelect';
import { PropsWithJsxAttributes } from '../../../utils/types/PropsWithJsxAttributes';
import { PopoverPropOffset } from '../../Popover/Popover';
import { PropSize, RenderItemProps } from '../types';
export declare const selectDropdownForm: readonly ["default", "brick", "round"];
export type SelectDropdownPropForm = typeof selectDropdownForm[number];
export declare const defaultSelectDropdownPropForm: "default";
type Props<ITEM, GROUP> = PropsWithJsxAttributes<{
    size: PropSize;
    controlRef: React.MutableRefObject<HTMLDivElement | null>;
    dropdownRef: React.Ref<HTMLDivElement>;
    getOptionProps(props: OptionProps<ITEM>): GetOptionPropsResult;
    form: SelectDropdownPropForm;
    isOpen: boolean;
    offset?: PopoverPropOffset | 'none';
    isLoading?: boolean;
    renderItem: (props: RenderItemProps<ITEM>) => JSX.Element | null;
    visibleItems: (OptionForCreate | {
        items: Array<SelectAllItem | ITEM>;
        key: string | number;
        group?: GROUP;
        groupIndex: number;
        checkedCount?: number;
        totalCount?: number;
    })[];
    getGroupLabel?: (group: GROUP) => string;
    labelForCreate?: string;
    labelForNotFound?: string;
    labelForEmptyItems?: string;
    notFound?: boolean;
    hasItems?: boolean;
}>;
type SelectDropdown = <ITEM, GROUP>(props: Props<ITEM, GROUP>) => React.ReactElement | null;
export declare const SelectDropdown: SelectDropdown;
export {};
