import { AfterViewInit, OnDestroy, ElementRef, NgZone, OnChanges, SimpleChanges } from '@angular/core';
import * as i0 from "@angular/core";
interface VirtualItem {
    index: number;
    data: any;
}
export declare class VirtualScrollComponent implements AfterViewInit, OnChanges, OnDestroy {
    private ngZone;
    viewport: ElementRef;
    templateContainer: ElementRef;
    /** 列表数据 */
    ncItems: any[];
    /** 列表项模板 */
    ncItemTemplate: any;
    /** 缓冲item数量，前后各2项 */
    ncBufferCount: number;
    initialized: boolean;
    private viewInitialized;
    private resizeObserver;
    visibleItems: VirtualItem[];
    totalPadding: number;
    topPadding: number;
    scrollTop: number;
    itemHeight: number;
    viewportHeight: number;
    constructor(ngZone: NgZone);
    /**
     * 场景	触发行	原因
     * 初始就有值（同步）	第 49 行measureAndUpdate	ngOnChanges 先执行但 viewInitialized=false 跳过，由 ngAfterViewInit 补调
     * 初始无值，后续赋值（异步）	第 75 行measureAndUpdate	ngAfterViewInit 时无数据跳过，数据到达时 ngOnChanges 直接调用
     */
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /** 测量 itemHeight 并更新列表（需在 ngAfterViewInit 之后调用） */
    private measureAndUpdate;
    onScroll(): void;
    updateVisibleItems(): void;
    updateTotalPadding(): void;
    trackByIndex(index: number, item: VirtualItem): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<VirtualScrollComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VirtualScrollComponent, "nc-virtual-scroll", never, { "ncItems": "ncItems"; "ncItemTemplate": "ncItemTemplate"; "ncBufferCount": "ncBufferCount"; }, {}, never, never>;
}
export {};
