import { AfterContentInit, AfterViewInit, OnDestroy } from '@angular/core';
import { RxVirtualScrollElement, RxVirtualScrollViewport, RxVirtualViewRepeater } from './model';
import * as i0 from "@angular/core";
/**
 * @Component RxVirtualScrollViewport
 *
 * @description
 * Container component comparable to CdkVirtualScrollViewport acting as viewport
 * for `*rxVirtualFor` to operate on.
 *
 * Its main purpose is to implement the `RxVirtualScrollViewport` interface
 * as well as maintaining the scroll runways' height in order to give
 * the provided `RxVirtualScrollStrategy` room to position items.
 *
 * Furthermore, it will gather and forward all events to the consumer of `rxVirtualFor`.
 *
 * @docsCategory RxVirtualFor
 * @docsPage RxVirtualFor
 * @publicApi
 */
export declare class RxVirtualScrollViewportComponent implements RxVirtualScrollViewport, AfterViewInit, AfterContentInit, OnDestroy {
    private elementRef;
    private scrollStrategy;
    protected scrollElement: RxVirtualScrollElement;
    /**
     * @description
     *
     * Sets the first view to be visible to the user.
     * The viewport waits for the data to arrive and scrolls to the given index immediately.
     *
     * */
    initialScrollIndex: number;
    /** @internal */
    private scrollSentinel;
    /** @internal */
    private runway;
    /** @internal */
    viewRepeater: RxVirtualViewRepeater<unknown>;
    readonly elementScrolled$: import("rxjs").Observable<void>;
    /** @internal */
    private _containerRect$;
    readonly containerRect$: import("rxjs").Observable<{
        width: number;
        height: number;
    }>;
    /**
     * @description
     *
     * The range to be rendered by `*rxVirtualFor`. This value is determined by the
     * provided `RxVirtualScrollStrategy`. It gives the user information about the
     * range of items being actually rendered to the DOM.
     * Note this value updates before the `renderCallback` kicks in, thus it is only
     * in sync with the DOM when the next `renderCallback` emitted an event.
     */
    readonly viewRange: import("rxjs").Observable<import("./model").ListRange>;
    /**
     * @description
     *
     * The index of the currently scrolled item. The scrolled item is the topmost
     * item actually being visible to the user.
     */
    readonly scrolledIndexChange: import("rxjs").Observable<number>;
    /** @internal */
    private readonly destroy$;
    /** @internal */
    constructor();
    ngAfterViewInit(): void;
    /** @internal */
    ngAfterContentInit(): void;
    /** @internal */
    ngOnDestroy(): void;
    getScrollElement(): HTMLElement;
    getScrollTop(): number;
    scrollTo(position: number, behavior?: ScrollBehavior): void;
    scrollToIndex(index: number, behavior?: ScrollBehavior): void;
    measureOffset(): number;
    protected updateContentSize(size: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RxVirtualScrollViewportComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RxVirtualScrollViewportComponent, "rx-virtual-scroll-viewport", never, { "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; }, { "viewRange": "viewRange"; "scrolledIndexChange": "scrolledIndexChange"; }, ["viewRepeater"], ["*"], true, never>;
}
