///
import { IText } from "../../core/types";
import { IMenu, IMenuExpandable, IMenuItem } from '../Menu/types';
/**
* Main navigation component interface that extends `INavigation`.
* Includes static components for `Header`, `Title`, `Item`, and `Expandable`.
*/
export interface INavigationComponent extends INavigation {
/**
* Component for rendering the header of a navigation item.
*/
Header: React.FC;
/**
* Component for rendering the title of a navigation item.
*/
Title: React.FC;
/**
* Component for rendering an individual navigation item.
*/
Item: React.FC;
/**
* Component for rendering an expandable navigation section.
*/
Expandable: React.FC;
}
export interface INavigationExpandable extends IMenuExpandable {
}
/**
* Properties for the main navigation component. Extends `IMenu` properties.
*/
export interface INavigation extends React.FC {
}
/**
* Properties for the navigation title component.
*/
export interface INavigationTitle extends IText {
}
/**
* Properties for the navigation subtitle component.
*/
export interface INavigationSubtitle extends IText {
}
/**
* Base properties for navigation items
*/
export interface INavigationItemBase extends IMenuItem {
/**
* Navigation item url
*/
href?: string;
/**
* Defines if the navigation item href link is external.
* @default false
*/
isExternal?: boolean;
}
/**
* Navigation item with href (anchor element)
*/
export interface INavigationItemWithHref extends Omit {
href: string;
onClick?: (event: React.MouseEvent) => void;
}
/**
* Navigation item without href (div element)
*/
export interface INavigationItemWithoutHref extends Omit {
href?: never;
onClick?: (event: React.MouseEvent) => void;
}
export declare type INavigationItem = INavigationItemWithHref | INavigationItemWithoutHref;