import { AfterContentInit, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { FocusEscapeDirection, KeyboardSupportService, ListItemInterface, Nullable } from '@fundamental-ngx/cdk/utils';
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
import { ListComponentInterface } from './list-component.interface';
import { ListFocusItem } from './list-focus-item.model';
import { ListNavigationItemComponent } from './list-navigation-item/list-navigation-item.component';
import { ListUnreadIndicator } from './list-unread-indicator.interface';
import * as i0 from "@angular/core";
/**
 * The directive that represents a list.
 * It is used to display a list of items with simple information such as scopes, names, etc.
 */
export declare class ListComponent implements ListComponentInterface, ListUnreadIndicator, OnInit, AfterContentInit, OnDestroy {
    private _keyboardSupportService;
    /** Whether dropdown mode is included to component, used for Select and Combobox */
    dropdownMode: boolean;
    /** Whether multi mode is included to component, used for MultiInput */
    multiInputMode: boolean;
    /** Whether list is used in mobile mode*/
    mobileMode: boolean;
    /** Whether list component contains message */
    hasMessage: boolean;
    /** Whether list component has removed borders */
    noBorder: boolean;
    /** Whether list component has navigation indicators */
    navigationIndicator: boolean;
    /** Whether list component has checkboxes or radio buttons included */
    selection: boolean;
    /** Whether internal keyboard support should be enabled. It's enabled by default */
    keyboardSupport: boolean;
    /** Whether list should have a byline */
    byline: boolean;
    /** Whether list should have a subline */
    subline: boolean;
    /** Whether to display unread notification indicator. */
    unreadIndicator: boolean;
    /** Event thrown, when focus escapes the list */
    focusEscapeList: EventEmitter<FocusEscapeDirection>;
    /** Whether list component includes links */
    hasNavigation: boolean;
    /**
     * User-provided role.
     */
    role: Nullable<string>;
    /** @hidden */
    items: QueryList<ListItemInterface>;
    /** @hidden */
    _navItems: QueryList<ListNavigationItemComponent>;
    /** @hidden */
    private _focusItems;
    /** @hidden */
    private get _ariaRole();
    /** Whether the list is used inside Settings Dialog */
    settingsList: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /** Whether the list is used inside Settings Dialog Footer */
    settingsListFooter: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /**
     * @hidden
     * Default role for lists
     */
    private _defaultRole;
    /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing)  */
    private readonly _onRefresh$;
    /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)  */
    private readonly _destroyRef;
    /** @hidden */
    constructor(_keyboardSupportService: KeyboardSupportService<ListFocusItem>, _contentDensityObserver: ContentDensityObserver);
    /** @hidden */
    keyDownHandler(event: KeyboardEvent): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngAfterContentInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** Set fake focus on element with passed index */
    setItemActive(index: number, updateOnly?: boolean): void;
    /**
     * @returns Currently active list item.
     */
    getActiveItem(): ListFocusItem | null;
    /** @hidden */
    private _listenOnQueryChange;
    /** @hidden */
    private _listenOnItemsClick;
    /** @hidden */
    private updateItemsProperties;
    /** @hidden */
    private _recheckLinks;
    /** @hidden */
    private _listenOnListFocusEscape;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "[fd-list], [fdList]", never, { "dropdownMode": { "alias": "dropdownMode"; "required": false; }; "multiInputMode": { "alias": "multiInputMode"; "required": false; }; "mobileMode": { "alias": "mobileMode"; "required": false; }; "hasMessage": { "alias": "hasMessage"; "required": false; }; "noBorder": { "alias": "noBorder"; "required": false; }; "navigationIndicator": { "alias": "navigationIndicator"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "keyboardSupport": { "alias": "keyboardSupport"; "required": false; }; "byline": { "alias": "byline"; "required": false; }; "subline": { "alias": "subline"; "required": false; }; "unreadIndicator": { "alias": "unreadIndicator"; "required": false; }; "role": { "alias": "role"; "required": false; }; "settingsList": { "alias": "settingsList"; "required": false; "isSignal": true; }; "settingsListFooter": { "alias": "settingsListFooter"; "required": false; "isSignal": true; }; }, { "focusEscapeList": "focusEscapeList"; }, ["items", "_navItems", "_focusItems"], ["*"], true, never>;
}
