import { type ElementType, type ReactElement, type ReactNode } from 'react'; import { type NavigationItem } from '../components'; import { type LinkTarget } from './link'; import { type AlignmentYExtendedDictionaryType, type ChildrenProps, type DirectionDictionaryType, type ShapeVariantDictionaryType, type SpiritPolymorphicElementPropsWithRef, type StyleProps, type TransferProps } from './shared'; type NonNullableShapeVariant = NonNullable; export type NavigationActionVariantsType = NonNullableShapeVariant | Record; export interface NavigationActionBaseProps extends ChildrenProps, StyleProps, TransferProps { href?: string; isDisabled?: boolean; isSelected?: boolean; target?: LinkTarget; variant?: NavigationActionVariantsType; } export interface NavigationAvatarBaseProps extends ChildrenProps, StyleProps, TransferProps { avatarContent: ReactElement | ReactNode; href?: string; isSquare?: boolean; target?: LinkTarget; } export type NavigationActionProps = { elementType?: E; } & NavigationActionBaseProps; export type NavigationAvatarProps = { elementType?: E; } & NavigationAvatarBaseProps; export type SpiritNavigationItemAlignmentYType = Omit; export interface SpiritNavigationItemProps extends ChildrenProps, StyleProps { alignmentY?: SpiritNavigationItemAlignmentYType; } export type SpiritNavigationActionProps = NavigationActionProps & SpiritPolymorphicElementPropsWithRef>; export type SpiritNavigationAvatarProps = NavigationAvatarProps & SpiritPolymorphicElementPropsWithRef>; export interface SpiritNavigationProps extends StyleProps { children: ReactElement | ReactElement | Array | ReactElement>; direction?: DirectionDictionaryType; } export {};