import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { ActivatedRoute, Router, UrlTree } from '@angular/router';
import { ValueAccessorBase } from '../../core/form';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class ListTitleComponent {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<ListTitleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListTitleComponent, "dui-list-title", never, {}, {}, never, ["*"], false, never>;
}
export declare class ListComponent extends ValueAccessorBase<any> {
    protected injector: Injector;
    readonly cd: ChangeDetectorRef;
    host: ElementRef<HTMLElement>;
    readonly cdParent: ChangeDetectorRef;
    static ids: number;
    white: boolean | '';
    id: number;
    focusable: boolean;
    delimiterLine: boolean | '';
    tabIndex: number;
    items: ListItemComponent[];
    protected itemMap: Map<string, ListItemComponent>;
    constructor(injector: Injector, cd: ChangeDetectorRef, host: ElementRef<HTMLElement>, cdParent: ChangeDetectorRef);
    deregister(item: ListItemComponent): void;
    register(item: ListItemComponent): void;
    protected getSortedList(): ListItemComponent[];
    onKeyDown(event: KeyboardEvent): Promise<void>;
    getSelectedItem(): ListItemComponent | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, [null, null, null, { skipSelf: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "dui-list", never, { "white": { "alias": "white"; "required": false; }; "focusable": { "alias": "focusable"; "required": false; }; "delimiterLine": { "alias": "delimiterLine"; "required": false; }; }, {}, never, ["*"], false, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ListComponent>;
}
export declare class ListItemComponent implements OnChanges, OnDestroy {
    list: ListComponent;
    element: ElementRef;
    cd: ChangeDetectorRef;
    router?: Router | undefined;
    static ids: number;
    id: number;
    value: any;
    routerLink?: string | UrlTree | any[];
    routerLinkExact?: boolean;
    queryParams?: {
        [name: string]: any;
    };
    active?: boolean;
    /**
     * When position is dynamic, it might be handy to define the position
     * explicitly to make arrow-up/arrow-down navigation possible.
     */
    position: number;
    onSelect: EventEmitter<any>;
    protected routerSub?: Subscription;
    constructor(list: ListComponent, element: ElementRef, cd: ChangeDetectorRef, router?: Router | undefined, activatedRoute?: ActivatedRoute);
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    select(): Promise<void>;
    isSelected(): boolean;
    onClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListItemComponent, [null, null, { skipSelf: true; }, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "dui-list-item", never, { "value": { "alias": "value"; "required": false; }; "routerLink": { "alias": "routerLink"; "required": false; }; "routerLinkExact": { "alias": "routerLinkExact"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "active": { "alias": "active"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, { "onSelect": "onSelect"; }, never, ["*"], false, never>;
}
