/**
 * @file TopNavHeading.tsx
 * @input Uses React, useRef, useCallback, ReactNode, StyleX, usePopover
 * @output Exports TopNavHeading component and TopNavHeadingProps
 * @position Companion component for TopNav heading slot
 *
 * Product/suite/account heading with smart interaction boundary logic.
 * Mirrors SideNavHeading features: superheading, subheading, menu popover,
 * chevron indicator, and independent link boundaries.
 *
 * 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 { LinkComponentType } from '../Link/types';
import type { BaseProps } from '../BaseProps';
export interface TopNavHeadingProps extends BaseProps<HTMLElement> {
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLElement>;
    /**
     * Logo element to display before the heading.
     * Can be an image, NavIcon, or any ReactNode.
     */
    logo?: ReactNode;
    /**
     * Accessible name for the logo when it links somewhere (`headingHref`) and
     * has no adjacent text to name it (for example a logo-only heading). Defaults
     * to `heading` when available. Ignored when the logo is not a link.
     */
    logoLabel?: string;
    /**
     * Product/app name.
     */
    heading?: string;
    /**
     * Link for the heading (e.g., product home).
     */
    headingHref?: string;
    /**
     * Text above the heading (e.g., suite name).
     */
    superheading?: string;
    /**
     * Link for the superheading (e.g., suite home).
     */
    superheadingHref?: string;
    /**
     * Text below the heading (e.g., account context).
     */
    subheading?: string;
    /**
     * Link for the subheading.
     */
    subheadingHref?: string;
    /**
     * Content rendered at the trailing edge of the heading row.
     */
    headerEndContent?: ReactNode;
    /**
     * Menu content shown in a popover. When provided, the header composes
     * usePopover internally and shows a dropdown chevron. The trigger
     * boundary is determined automatically:
     * - No hrefs → whole header is the trigger
     * - With hrefs → links are independent, chevron/remaining area is the trigger
     */
    menu?: ReactNode;
    /**
     * 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;
}
/**
 * Product/suite/account heading for TopNav.
 *
 * Supports smart interaction boundary logic:
 * - No hrefs + menu → whole heading is the popover trigger
 * - headingHref only, no menu → whole heading is one link
 * - headingHref + superheadingHref, no menu → each is an independent link
 * - menu + hrefs → links are independent, chevron/remaining area is the trigger
 *
 * The chevron indicator is automatically shown when `menu` is provided.
 *
 * @example
 * ```
 * <TopNavHeading logo={<NavIcon icon={<HomeIcon />} />} heading="My App" headingHref="/" />
 * <TopNavHeading
 *   logo={<NavIcon icon={<SuiteIcon />} />}
 *   superheading="Suite Name"
 *   superheadingHref="/suite"
 *   heading="Product Name"
 *   headingHref="/product"
 *   menu={<ProductSwitcher />}
 * />
 * ```
 */
export declare function TopNavHeading({ as, logo, logoLabel, heading, headingHref, superheading, superheadingHref, subheading, subheadingHref, headerEndContent, menu, xstyle, className, style, 'data-testid': testId, ref, ...props }: TopNavHeadingProps): import("react").JSX.Element;
export declare namespace TopNavHeading {
    var displayName: string;
}
//# sourceMappingURL=TopNavHeading.d.ts.map