import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
import { IFocusableOption } from '@koobiq/cdk/a11y';
import { KbqComponentColors, KbqTitleTextRef } from '@koobiq/components/core';
import { KbqIcon } from '@koobiq/components/icon';
import { Subject } from 'rxjs';
import { KbqDropdownPanel } from './dropdown.types';
import * as i0 from "@angular/core";
/**
 * This directive is intended to be used inside an kbq-dropdown tag.
 * It exists mostly to set the role attribute.
 */
export declare class KbqDropdownItem implements KbqTitleTextRef, IFocusableOption, AfterViewInit, OnDestroy {
    private elementRef;
    private focusMonitor;
    parentDropdownPanel?: KbqDropdownPanel | undefined;
    textElement: ElementRef;
    icon: KbqIcon;
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    /** Stream that emits when the dropdown item is hovered. */
    readonly hovered: Subject<KbqDropdownItem>;
    /** Stream that emits when the menu item is focused. */
    readonly focused: Subject<KbqDropdownItem>;
    /** Whether the dropdown item is highlighted. */
    highlighted: boolean;
    /** Whether the dropdown item acts as a trigger for a nested dropdown. */
    isNested: boolean;
    /** @docs-private */
    protected readonly componentColors: typeof KbqComponentColors;
    constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, parentDropdownPanel?: KbqDropdownPanel | undefined);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    resetStyles(): void;
    /** Focuses the dropdown item. */
    focus(origin?: FocusOrigin, options?: FocusOptions): void;
    /** Returns the host DOM element. */
    getHostElement(): HTMLElement;
    /** Used to set the `tabindex`. */
    getTabIndex(): string;
    /** Prevents the default element actions if it is disabled. */
    checkDisabled(event: Event): void;
    /** Emits to the hover stream. */
    handleMouseEnter(): void;
    /** Gets the label to be used when determining whether the option should be focused. */
    getLabel(): string;
    haltDisabledEvents(event: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqDropdownItem, [null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqDropdownItem, "kbq-dropdown-item, [kbq-dropdown-item]", ["kbqDropdownItem"], { "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["icon"], ["[kbq-icon]", "*"], false, never>;
    static ngAcceptInputType_disabled: unknown;
}
