import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
import { Nullable } from '@fundamental-ngx/cdk/utils';
import { NestedItemLink } from '../nested-item/nested-item.interface';
import { NestedItemService } from '../nested-item/nested-item.service';
import { NestedListTitleDirective } from '../nested-list-directives';
import * as i0 from "@angular/core";
export declare class NestedLinkDirective implements NestedItemLink {
    changeDetRef: ChangeDetectorRef;
    private _elementRef;
    private _itemService;
    /** Function that is called on click event dispatch on this element. */
    onClickCallback: () => void;
    /** Whether this element is selected*/
    selected: boolean;
    /** @hidden */
    _ariaLabel: string;
    /** @hidden */
    ariaDescribedby: Nullable<string | number>;
    /** Event thrown, when selected state is changed */
    selectedChange: EventEmitter<boolean>;
    /** @hidden */
    fdNestedListItemClass: boolean;
    /** @hidden */
    tabIndex: number;
    /** @hidden */
    role: string;
    /**
     *  @hidden
     *  Reference to title element, it is used, to get title for condensed mode.
     */
    title: NestedListTitleDirective;
    /** @hidden */
    constructor(changeDetRef: ChangeDetectorRef, _elementRef: ElementRef, _itemService: NestedItemService);
    /** Handler for keyboard events */
    onKeyDown(event: KeyboardEvent): void;
    /** Handler for mouse events */
    onClick(): void;
    /** Handler for focus events */
    onFocus(): void;
    /** Method to trigger selected state change */
    changeSelected(selected: boolean): void;
    /** Set focus on the element. */
    focus(): void;
    /** Dispatches the click event on the element */
    click(): void;
    /** Returns the title value of the title directive */
    getTitle(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NestedLinkDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NestedLinkDirective, "[fdNestedLink], [fd-nested-list-link]", never, { "onClickCallback": { "alias": "onClickCallback"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, { "selectedChange": "selectedChange"; }, ["title"], never, true, never>;
}
