/**
 * @file SideNavItem.tsx
 * @input Uses React, ReactNode, StyleX, Icon, IconType
 * @output Exports SideNavItem component and SideNavItemProps
 * @position Core implementation; used inside SideNav children
 *
 * Navigation item with icon, selected state, and nesting.
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/SideNav/SideNav.doc.mjs
 * - /packages/core/src/SideNav/SideNav.test.tsx
 * - /packages/core/src/SideNav/index.ts
 * - /apps/storybook/stories/SideNav.stories.tsx
 * - /packages/cli/assets/templates/blocks/components/SideNav/ (showcase blocks)
 */
import { type ReactNode } from 'react';
import { type IconType } from '../Icon';
import type { LinkComponentType } from '../Link/types';
import type { BaseProps } from '../BaseProps';
import { type NavItemSize } from '../NavItem/navItemStyles.stylex';
export interface SideNavItemProps extends BaseProps<HTMLElement> {
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLElement>;
    /**
     * Custom component to render instead of `<a>` for link items.
     * Overrides the provider-level default set by LinkProvider.
     * Only applies when `href` is provided. Must accept href, className, style, and children props.
     */
    as?: LinkComponentType;
    /**
     * Item label.
     */
    label: string;
    /**
     * Icon (outline variant).
     */
    icon?: ReactNode | IconType;
    /**
     * Icon when selected (filled variant).
     */
    selectedIcon?: ReactNode | IconType;
    /**
     * Current page indicator.
     * @default false
     */
    isSelected?: boolean;
    /**
     * Whether the item is disabled.
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Navigation URL.
     */
    href?: string;
    /**
     * Click handler.
     */
    onClick?: (e: React.MouseEvent) => void;
    /**
     * Right-side content (badges, counts).
     */
    endContent?: ReactNode;
    /**
     * Sub-items for nesting.
     */
    children?: ReactNode;
    /**
     * Enables collapse behavior for items with children.
     * When true, clicking the item toggles visibility of sub-items.
     *
     * - `true` — collapsible with defaults (starts expanded)
     * - Object — controlled/configured:
     *   - `defaultIsCollapsed` — start collapsed (default: false)
     *   - `isCollapsed` + `onCollapsedChange` — controlled mode
     *
     * @default false
     */
    collapsible?: boolean | {
        defaultIsCollapsed?: boolean;
        isCollapsed?: boolean;
        onCollapsedChange?: (isCollapsed: boolean) => void;
    };
    /**
     * Size variant for the nav item.
     * @default 'md'
     */
    size?: NavItemSize;
}
/**
 * Navigation item for SideNav.
 *
 * Supports icons, selected state, nesting, and end content like badges or counts.
 *
 * @example
 * ```
 * <SideNavItem
 *   label="Dashboard"
 *   icon={HomeIcon}
 *   selectedIcon={HomeIconSolid}
 *   isSelected
 *   href="/dashboard"
 * />
 * <SideNavItem label="Settings" icon={CogIcon}>
 *   <SideNavItem label="General" href="/settings/general" />
 *   <SideNavItem label="Security" href="/settings/security" />
 * </SideNavItem>
 * ```
 */
export declare function SideNavItem({ as, label, icon, selectedIcon, isSelected, isDisabled, href, onClick, endContent, children, collapsible: itemCollapsible, size, 'data-testid': testId, ref, xstyle, }: SideNavItemProps): import("react").JSX.Element | null;
export declare namespace SideNavItem {
    var displayName: string;
}
//# sourceMappingURL=SideNavItem.d.ts.map