import { ButtonHTMLAttributes, DragEvent, ReactNode } from 'react';
import { IconDefinition } from '@gnome-ui/icons';
export interface SidebarMenuEntry {
    /** Label shown in the context menu. */
    label: string;
    /** Called when the entry is clicked. */
    onClick: () => void;
    /** Renders the entry in red. Use for destructive actions. */
    destructive?: boolean;
    /** Disables the entry. */
    disabled?: boolean;
}
export interface SidebarItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
    /** Primary label. */
    label: string;
    /** Icon from `@gnome-ui/icons`. */
    icon?: IconDefinition;
    /** Marks this item as the currently active view. */
    active?: boolean;
    /**
     * Trailing widget — any ReactNode (badge, button, icon…).
     * Supersedes `badge` when both are provided.
     */
    suffix?: ReactNode;
    /**
     * @deprecated Use `suffix` instead.
     */
    badge?: ReactNode;
    /**
     * Short tooltip shown when hovering the item.
     * Automatically shown when the sidebar is `collapsed`.
     */
    tooltip?: string;
    /**
     * Context-menu entries shown on right-click or the Menu key.
     */
    menuItems?: SidebarMenuEntry[];
    /**
     * Called when a dragged item is dropped onto this row.
     * Mirrors `AdwSidebar` per-row drop target support (libadwaita 1.9).
     */
    onDrop?: (e: DragEvent<HTMLButtonElement>) => void;
    /**
     * MIME types this row accepts as drop targets (e.g. `["text/plain"]`).
     * When provided, drops of other types are rejected via `e.preventDefault()`.
     * When omitted, all types are accepted.
     */
    acceptTypes?: string[];
}
/**
 * Individual navigation item inside a `Sidebar` or `SidebarSection`.
 *
 * **Tier 11 additions:**
 * - Automatically hidden when `Sidebar`'s `filter` / `searchable` is active
 *   and the `label` does not match (case-insensitive substring).
 * - `onDrop` / `acceptTypes` — HTML5 drag-and-drop target support.
 */
export declare function SidebarItem({ label, icon, active, suffix, badge, tooltip, menuItems, onDrop, acceptTypes, className, ...props }: SidebarItemProps): import("react/jsx-runtime").JSX.Element;
