import type { ReactNode } from 'react'; import React from 'react'; import type { SlotRegistry } from '@teambit/harmony'; import type { DropdownComponentVersion, GetActiveTabIndex } from '@teambit/component.ui.version-dropdown'; import type { MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown'; import { ComponentID } from '@teambit/component-id'; import type { LanesModel } from '@teambit/lanes.ui.models.lanes-model'; import type { UseComponentType, Filters } from '../use-component'; import type { OrderedNavigationSlot, ConsumeMethodSlot } from './nav-plugin'; export type RightSideMenuItem = { item: ReactNode; order: number; }; export type RightSideMenuSlot = SlotRegistry; export type MenuProps = { className?: string; /** * skip the right side. */ skipRightSide?: boolean; /** * custom render the right side */ RightNode?: React.ReactNode; /** * slot for top bar menu nav items */ navigationSlot: OrderedNavigationSlot; /** * right side navigation menu item slot */ widgetSlot: OrderedNavigationSlot; /** * pinned widgets slots - right side of the widget slot */ pinnedWidgetSlot: OrderedNavigationSlot; /** * right side menu item slot */ rightSideMenuSlot: RightSideMenuSlot; /** * workspace or scope */ host: string; /** * main dropdown item slot */ menuItemSlot: MenuItemSlot; consumeMethodSlot: ConsumeMethodSlot; componentIdStr?: string | (() => string | undefined); useComponent?: UseComponentType; useComponentFilters?: () => Filters; useLanes?: () => { loading?: boolean; lanesModel?: LanesModel; }; path?: string; authToken?: string; }; /** * top bar menu. */ export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host: hostFromProps, menuItemSlot, consumeMethodSlot, rightSideMenuSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, authToken, pinnedWidgetSlot, }: MenuProps): import("react/jsx-runtime").JSX.Element; export type VersionRelatedDropdownsProps = { componentId?: string; consumeMethods?: ConsumeMethodSlot; componentFilters?: Filters; useComponent?: UseComponentVersions; className?: string; loading?: boolean; host: string; useLanes?: () => { loading?: boolean; lanesModel?: LanesModel; }; dropdownOptions?: { showVersionDetails?: boolean; getActiveTabIndex?: GetActiveTabIndex; }; authToken?: string; }; export type UseComponentVersionsProps = { skip?: boolean; id?: string; initialLoad?: boolean; }; export type UseComponentVersionProps = { skip?: boolean; version?: string; }; export type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult; export type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined; export type UseComponentVersionsResult = { tags?: DropdownComponentVersion[]; snaps?: DropdownComponentVersion[]; id?: ComponentID; packageName?: string; latest?: string; currentVersion?: string; loading?: boolean; }; export declare function defaultLoadVersions(host: string, componentId?: string, componentFilters?: Filters, useComponent?: UseComponentType, loadingFromProps?: boolean): UseComponentVersions; export declare const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion; export declare function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps): import("react/jsx-runtime").JSX.Element;