/**
 * @file TopNavItem.tsx
 * @input Uses React, ReactNode, BaseProps, LinkComponentType
 * @output Exports TopNavItem component and TopNavItemProps
 * @position Navigation item component for TopNav startContent
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/TopNav/TopNav.doc.mjs
 * - /packages/core/src/TopNav/TopNav.test.tsx
 * - /packages/core/src/TopNav/index.ts
 * - /apps/storybook/stories/TopNav.stories.tsx
 * - /packages/cli/assets/templates/blocks/components/TopNav/ (showcase blocks)
 */
import type { ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
import type { LinkComponentType } from '../Link/types';
import { type NavItemSize } from '../NavItem/navItemStyles.stylex';
export interface TopNavItemProps extends BaseProps<HTMLAnchorElement> {
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLAnchorElement>;
    /** Link destination URL. */
    href?: string;
    /** Where to open the linked document. */
    target?: string;
    /** Link relationship. */
    rel?: string;
    /** Causes the browser to download the linked URL. */
    download?: string | boolean;
    /** Referrer policy for the link. */
    referrerPolicy?: React.HTMLAttributeReferrerPolicy;
    /**
     * Custom component to render instead of `<a>`.
     * Overrides the provider-level default set by LinkProvider.
     * Must accept href, className, style, and children props.
     */
    as?: LinkComponentType;
    /**
     * The accessible label for the nav item.
     * Rendered as visible text by default. When `isIconOnly` is true,
     * used as aria-label instead.
     */
    label: string;
    /**
     * Whether this nav item is currently selected/highlighted.
     * @default false
     */
    isSelected?: boolean;
    /**
     * Whether the nav item is disabled.
     * A disabled item renders as a plain anchor without an href (and without
     * target), so it cannot navigate and is removed from the tab order.
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Renders the item as a square icon-only element.
     * When true, `label` becomes the aria-label and visible text is hidden.
     * Requires `icon` to be set.
     * @default false
     */
    isIconOnly?: boolean;
    /**
     * Optional icon to display before the label.
     */
    icon?: ReactNode;
    /**
     * Optional content to render instead of the label.
     */
    children?: ReactNode;
    /**
     * Size variant for the nav item. Has no effect in horizontal mode;
     * controls height/padding in drawer mode.
     * @default 'md'
     */
    size?: NavItemSize;
}
/**
 * A navigation item for use within TopNav startContent.
 *
 * Renders as an anchor element with hover/selected states.
 * Supports icons and selected state indication with highlighted appearance.
 *
 * @example
 * ```
 * <TopNav
 *   startContent={
 *     <>
 *       <TopNavItem label="Home" href="/" isSelected />
 *       <TopNavItem label="Products" href="/products" />
 *       <TopNavItem label="Settings" href="/settings" icon={<GearIcon />} isIconOnly />
 *     </>
 *   }
 * />
 * ```
 */
export declare function TopNavItem({ as, href, target, onClick, label, isSelected, isDisabled, isIconOnly, icon, children, size, xstyle, className, style, ref, ...props }: TopNavItemProps): import("react").JSX.Element;
export declare namespace TopNavItem {
    var displayName: string;
}
//# sourceMappingURL=TopNavItem.d.ts.map