import * as i0 from '@angular/core';
import { OnInit, OnDestroy, ElementRef } from '@angular/core';
import { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';
import { RxLet } from '@rx-angular/template/let';
import { Subject, Observable, BehaviorSubject } from 'rxjs';

declare class ViewportPrioDirective implements OnInit, OnDestroy {
    private readonly el;
    private strategyProvider;
    private letDirective;
    entriesSubject: Subject<Pick<IntersectionObserverEntry, "intersectionRatio">[]>;
    entries$: Observable<Pick<IntersectionObserverEntry, 'intersectionRatio'>>;
    _viewportPrioObservables: BehaviorSubject<string | Observable<string>>;
    _viewportPrio: Observable<string>;
    set viewportPrio(prio: string | Observable<string>);
    private observer;
    visibilityEvents$: Observable<"visible" | "invisible">;
    constructor(el: ElementRef<HTMLElement>, strategyProvider: RxStrategyProvider, letDirective: RxLet<any> | null);
    ngOnInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ViewportPrioDirective, [null, null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ViewportPrioDirective, "[viewport-prio]", never, { "viewportPrio": { "alias": "viewport-prio"; "required": false; }; }, {}, never, never, true, never>;
}

/** @deprecated use the standalone import, will be removed with v16 */
declare class ViewportPrioModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ViewportPrioModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ViewportPrioModule, never, [typeof ViewportPrioDirective], [typeof ViewportPrioDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ViewportPrioModule>;
}

export { ViewportPrioDirective, ViewportPrioModule };
