import React, { Component } from "react"; export declare const clearSidekickMenuCache: () => void; export type ISidekickMenuItem = { id: string; label: React.ReactNode; icon: React.ReactNode; searchTerms: string; visibilityControl?: { isVisibleResolver?: () => boolean | Promise; isCachable?: boolean; }; } & ({ path: string; onClick?: never; children?: never; } | { path?: never; onClick: () => void; children?: never; } | { path?: never; onClick?: never; children: ISidekickMenuItem[]; }); export interface SidekickMenuProps { items: ISidekickMenuItem[]; searchEnabled?: boolean; searchAutoFocus?: boolean; searchPlaceholder?: string; alwaysShowUnsearchableItems?: boolean; openOnDesktop?: boolean; searchIcon?: React.ReactNode; chevronIcon?: React.ReactNode; headerContent?: React.ReactNode; footerContent?: React.ReactNode; cacheLifetime?: number; } interface SidekickMenuState { isOpen: boolean; searchTerm: string; highlightedIndex: number; openSubMenus: { [key: string]: boolean; }; itemVisibility: { [key: string]: "VISIBLE" | "HIDDEN" | "PENDING"; }; } declare class SidekickMenu extends Component { static defaultProps: { searchEnabled: boolean; searchAutoFocus: boolean; searchPlaceholder: string; alwaysShowUnsearchableItems: boolean; openOnDesktop: boolean; cacheLifetime: number; }; state: SidekickMenuState; private searchInputRef; private menuRef; private lastFocusedElement; componentDidMount(): void; componentDidUpdate(prevProps: SidekickMenuProps, prevState: SidekickMenuState): void; componentWillUnmount(): void; _validateItemIds: (items: ISidekickMenuItem[]) => void; _processItemVisibilities: () => void; toggleMenu: () => void; toggleSubMenu: (id: string) => void; handleFocusTrap: (event: KeyboardEvent) => void; scrollHighlightedItemIntoView: () => void; handleSearchChange: (event: React.ChangeEvent) => void; handleKeyDown: (event: React.KeyboardEvent) => void; getVisibleItems: (items?: ISidekickMenuItem[]) => ISidekickMenuItem[]; getFilteredItems: (itemsToFilter: ISidekickMenuItem[], currentSearchTerm: string) => ISidekickMenuItem[]; renderMenuItems: (items: ISidekickMenuItem[], level: number, currentSearchTerm: string) => React.ReactNode; render(): React.JSX.Element; } export default SidekickMenu;