import { FC, ReactNode } from 'react';
/**
* NavLink Props Interface
*
* Generic navigation link component that accepts all data via props.
* No dependencies on routing libraries - pure presentation component.
*/
export interface NavLinkProps {
/** Link text/label */
label: string;
/** Optional icon (left side) */
icon?: ReactNode;
/** Optional badge content (right side) */
badge?: string | number;
/** Whether this link is currently active */
isActive?: boolean;
/** Whether this link is disabled */
disabled?: boolean;
/** Click handler */
onClick?: () => void;
/** Optional href for native links */
href?: string;
/** Visual variant */
variant?: 'default' | 'compact' | 'sidebar';
/** Additional CSS classes */
className?: string;
/** ARIA label for accessibility */
ariaLabel?: string;
}
/**
* NavLink Component
*
* Generic navigation link for app shells. Pure presentation component
* that accepts all data via props.
*
* Features:
* - Active state indication
* - Icon support
* - Badge support (notifications, counts)
* - Disabled state
* - Multiple variants (default, compact, sidebar)
* - Accessible navigation
*
* Uses semantic tokens for styling, which must be provided by the shell.
*
* @example
* ```tsx
* }
* isActive={currentPath === '/dashboard'}
* onClick={() => navigate('/dashboard')}
* />
*
* }
* badge={5}
* onClick={() => navigate('/notifications')}
* />
* ```
*/
export declare const NavLink: FC;
//# sourceMappingURL=NavLink.d.ts.map