import { Injector, ElementRef } from '@angular/core';
import { PartialKeys, VirtualizerOptions } from '@tanstack/virtual-core';
import { AngularVirtualizer } from './types.cjs';
export * from '@tanstack/virtual-core';
export * from './types.cjs';
export type AngularVirtualizerOptions<TScrollElement extends Element | Window, TItemElement extends Element> = VirtualizerOptions<TScrollElement, TItemElement> & {
    /**
     * Whether to flush the DOM using `ApplicationRef.tick()`
     * @default true
     * */
    useApplicationRefTick?: boolean;
};
export type AngularExtensionOptions = {
    /**
     * The injector to use for the virtualizer.
     * @default inject(Injector)
     */
    injector?: Injector;
};
export declare function injectVirtualizer<TScrollElement extends Element, TItemElement extends Element>(options: () => PartialKeys<Omit<AngularVirtualizerOptions<TScrollElement, TItemElement>, 'getScrollElement'>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'> & {
    scrollElement: ElementRef<TScrollElement> | TScrollElement | undefined;
}): AngularVirtualizer<TScrollElement, TItemElement>;
export declare function injectWindowVirtualizer<TItemElement extends Element>(options: () => PartialKeys<AngularVirtualizerOptions<Window, TItemElement>, 'getScrollElement' | 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>): AngularVirtualizer<Window, TItemElement>;
