import { HTMLAttributes, ReactElement } from 'react'; import { IconNamesType } from '../../../../../../../../../src/utils'; export interface TopLinkItemProps { label: string; href: string; disabled?: boolean; icon?: IconNamesType; id?: string; className?: string; } export interface LinkItemProps extends HTMLAttributes { children: string; active?: boolean; disabled?: boolean; href: string; parentHasIcon?: boolean; } export interface NavCategoryProps extends React.ButtonHTMLAttributes { label: string; icon?: IconNamesType; expanded?: boolean; disabled?: boolean; active?: boolean; children?: ReactElement | ReactElement[]; } type EnforcedAccessibleLabel = { "aria-label": string; } | { "aria-labelledby": string; }; export type LeftNavProps = { currentUrl?: string; isActiveOverride?: boolean; onNavigate?: (id: string, url: string) => void; children?: ReactElement | ReactElement[]; } & React.BaseHTMLAttributes & EnforcedAccessibleLabel; export interface LeftNavSubComponents { LinkItem: React.FC; NavCategory: React.FC; TopLinkItem: React.FC; } export interface LeftNavContextType { currentUrl: string; onSelectedLink?: (id: string, url: string) => void; isActiveOverride?: boolean; hasCustomOnNavigate?: boolean; } export {};