import { AfterContentInit, DoCheck, ElementRef, EmbeddedViewRef, EventEmitter, InjectionToken, IterableDiffer, IterableDiffers, OnDestroy, TemplateRef, ViewContainerRef } from "@angular/core"; import { ItemEventData, TemplatedItemsView } from "tns-core-modules/ui/list-view"; import { View, KeyedTemplate } from "tns-core-modules/ui/core/view"; export declare class ItemContext { $implicit?: any; item?: any; index?: number; even?: boolean; odd?: boolean; constructor($implicit?: any, item?: any, index?: number, even?: boolean, odd?: boolean); } export interface SetupItemViewArgs { view: EmbeddedViewRef; data: any; index: number; context: ItemContext; } export declare abstract class TemplatedItemsComponent implements DoCheck, OnDestroy, AfterContentInit { private _iterableDiffers; abstract readonly nativeElement: TemplatedItemsView; protected templatedItemsView: TemplatedItemsView; protected _items: any; protected _differ: IterableDiffer; protected _templateMap: Map; loader: ViewContainerRef; setupItemView: EventEmitter; itemTemplateQuery: TemplateRef; itemTemplate: TemplateRef; items: any; constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers); ngAfterContentInit(): void; ngOnDestroy(): void; private setItemTemplates; registerTemplate(key: string, template: TemplateRef): void; onItemLoading(args: ItemEventData): void; setupViewRef(viewRef: EmbeddedViewRef, data: any, index: number): void; protected getItemTemplateViewFactory(template: TemplateRef): () => View; private detectChangesOnChild; ngDoCheck(): void; } export interface ComponentView { rootNodes: Array; destroy(): void; } export declare type RootLocator = (nodes: Array, nestLevel: number) => View; export declare function getItemViewRoot(viewRef: ComponentView, rootLocator?: RootLocator): View; export declare const TEMPLATED_ITEMS_COMPONENT: InjectionToken; export declare class TemplateKeyDirective { private templateRef; private comp; constructor(templateRef: TemplateRef, comp: TemplatedItemsComponent); nsTemplateKey: any; }