import React from 'react';
export interface HoverDropdownItem {
    label: string;
    icon?: React.ReactNode;
    href?: string;
    /**
     * Target platform for the row's link — threaded through to the caller's
     * `renderAnchor` slot, which decides how to route (same tab vs new tab,
     * embed-aware open, etc.). Plain UI dropdown — no internal click rule.
     */
    targetPlatform?: string | null;
    /**
     * In-app doc-tree path for `markdown` / `data_room_doc` refs. Threaded
     * through to the caller's `renderAnchor` so chat consumers can wire it
     * into `handleChatNavClick` and trigger an in-page doc-tree swap
     * (parity with source chips and inline cards).
     */
    path?: string | null;
    /**
     * @deprecated Pass `targetPlatform` to the consumer's `renderAnchor` and
     * let it decide. Kept on the item shape for caller-side decisions but
     * unused by this component.
     */
    alwaysNewTab?: boolean;
    onClick?: () => void;
    /** Optional secondary action rendered as a small icon-button at the
     *  right edge of the row. Independent of the row's primary click target
     *  — clicking the secondary button does NOT navigate. */
    secondaryAction?: {
        icon: React.ReactNode;
        label: string;
        onClick: () => void;
    };
}
export interface HoverDropdownRenderAnchorArgs {
    href: string;
    targetPlatform?: string | null;
    /** In-app doc-tree path — chat consumers forward to `handleChatNavClick`
     *  for doc-tree swap parity with chips + inline cards. */
    path?: string | null;
    alwaysNewTab?: boolean;
    className: string;
    children: React.ReactNode;
}
interface HoverDropdownProps {
    /** The trigger element — dropdown appears on hover */
    children: React.ReactNode;
    /** Items to show in the dropdown */
    items: HoverDropdownItem[];
    /** Dropdown position relative to trigger (default: 'top') */
    side?: 'top' | 'bottom';
    /** Delay in ms before hiding on mouse leave (default: 200) */
    hideDelay?: number;
    /** Additional className for the dropdown container */
    className?: string;
    /**
     * Optional anchor renderer for rows that have an `href`. Chat consumers
     * supply a `<NavLinkAnchorViaRuntime>`-backed renderer so clicks route
     * through the chat runtime; non-chat consumers can skip this and rely
     * on the default plain `<a>`.
     */
    renderAnchor?: (args: HoverDropdownRenderAnchorArgs) => React.ReactNode;
}
export declare function HoverDropdown({ children, items, side, hideDelay, className, renderAnchor, }: HoverDropdownProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=hover-dropdown.d.ts.map