import type { IElementRef, OnCreate, OnDestroy } from '@melodicdev/core';
import type { BadgeColor } from './sidebar.types.js';
/**
 * ml-sidebar-item - Navigation link for use within ml-sidebar
 *
 * @example
 * ```html
 * <ml-sidebar-item icon="house" label="Home" value="home" active></ml-sidebar-item>
 * <ml-sidebar-item icon="folder" label="Projects" value="projects" badge="5">
 *   <ml-sidebar-item label="Active" value="active" level="1"></ml-sidebar-item>
 *   <ml-sidebar-item label="Archived" value="archived" level="1"></ml-sidebar-item>
 * </ml-sidebar-item>
 * ```
 *
 * @slot leading - Custom icon/avatar override
 * @slot trailing - Custom trailing content
 * @slot default - Sub-items for expandable menu
 *
 * @fires ml:sidebar-item-click - Emitted when item is clicked (bubbles to parent sidebar)
 */
export declare class SidebarItemComponent implements IElementRef, OnCreate, OnDestroy {
    elementRef: HTMLElement;
    /** Icon name */
    icon: string;
    /** Icon format (passed through to ml-icon) */
    'icon-format': 'fill' | 'thin' | 'light' | 'regular' | 'bold' | '';
    /** Display label */
    label: string;
    /** Unique value identifier */
    value: string;
    /** Navigation URL */
    href: string;
    /** Active state (managed by parent sidebar) */
    active: boolean;
    /** Disabled state */
    disabled: boolean;
    /** Badge text */
    badge: string;
    /** Badge color variant */
    'badge-color': BadgeColor;
    /** External link */
    external: boolean;
    /** Submenu expanded state */
    expanded: boolean;
    /** Collapsed state (set by parent sidebar in slim mode) */
    collapsed: boolean;
    /** Indentation level for nested items */
    level: string;
    /** Track slotted children */
    private _hasChildren;
    /** Check if default slot has children */
    get hasChildren(): boolean;
    onCreate(): void;
    onDestroy(): void;
    /** Handle default slot change to detect children */
    handleSlotChange: (event: Event) => void;
    /** Handle click on item */
    handleClick: (event: Event) => void;
}
//# sourceMappingURL=sidebar-item.component.d.ts.map