import { FC, ReactElement, ReactNode, PropsWithChildren, MutableRefObject } from 'react'; import { DownPlacement, DownPlacementValue, DownLayer } from 'bloko/blocks/drop/Down/common'; export interface DownProps { /** Предпочтительное положение down, доступны в статическом свойстве [placements](#down-placements). */ placement?: DownPlacementValue; /** Выпадать только в заданном направлении, не обрабатывать другие кейсы */ onlySetPlacement?: boolean; /** Class z-index-а, варианты доступны в статическом свойстве [layers](#down-layers) */ layer?: DownLayer; /** DOM нода хоста в рамках которого нужно рендерить Down, по дефолту рендер будет в родителе компонента.*/ host?: HTMLElement | null; /** Флаг отвечает за показ Down, `true` - показать, `false` - скрыть */ show?: boolean; /** Элемент инициатор, относительно которого показывать компонент */ children: ReactElement; /** Метод-рендер контента Down */ render: () => ReactNode; /** dataQa='bloko-drop-down' Data-qa активного компонента */ dataQa?: string; /** Колбек вызываемый при закрытии компонента. Срабатывает в случае клика вне компонента или клика на крестик */ onClose?: () => void; /** Метка, использовать ли тянущийся down. * Тянущийся down будет растягивать по контенту, ограничиваясь только размерами экрана */ flexible?: boolean; /** Метка, показывать ли крестик для закрытия */ showCloseButton?: boolean; /** Заголовок для XS. Отображается если передан */ title?: ReactNode; /** Элемент активатор, относительно которого показывать дроп */ activatorRef: MutableRefObject; } declare const DropDown: FC; export default DropDown; export { DownLayer, DownPlacement };