import { AfterViewInit, ElementRef, Injector, OnInit } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { App } from '@wm/core';
import { ListComponent } from './list.component';
import * as i0 from "@angular/core";
export declare class ListItemDirective implements OnInit, AfterViewInit {
    private inj;
    private app;
    _viewParent: ListComponent;
    item: any;
    context: any;
    destroy: Subject<any>;
    destroy$: Observable<any>;
    nativeElement: HTMLElement;
    readonly listComponent: ListComponent;
    private itemClass;
    private _currentItemWidgets;
    private viewContainerRef;
    /**
     * To avoid re-rendering of widget, passing unique id as contextKey to createCustomInjector
     */
    protected trackId: string;
    isActive: boolean;
    disableItem: boolean;
    onFocus(): void;
    get $index(): any;
    get $even(): any;
    get $odd(): any;
    get $first(): any;
    get $last(): any;
    get currentItemWidgets(): {};
    set wmListItem(val: any);
    constructor(inj: Injector, elRef: ElementRef, app: App, _viewParent: ListComponent);
    private registerWatch;
    private itemClassWatcher;
    private disableItemWatcher;
    private setUpCUDHandlers;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListItemDirective, [null, null, null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ListItemDirective, "[wmListItem]", ["listItemRef"], { "wmListItem": { "alias": "wmListItem"; "required": false; }; }, {}, never, never, false, never>;
}
