import * as _angular_core from '@angular/core';
import { TrackByFunction, TemplateRef } from '@angular/core';
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
/**
* Fixed-size virtual scroll viewport.
*
* Thin wrapper around CDK's `cdk-virtual-scroll-viewport` with ngwr
* theming and sensible buffer defaults. Project a single template — it's
* called per item with `let-item let-index="index"`.
*
* @example
* ```html
*
*
* {{ i }}. {{ row.name }}
*
*
* ```
*
* @see https://ngwr.dev/components/virtual-scroll
*/
declare class WrVirtualScroll {
/** Items to render. */
readonly items: _angular_core.InputSignal;
/** Per-item pixel height. All rows must be the same height. @default 32 */
readonly itemSize: _angular_core.InputSignalWithTransform;
/**
* Viewport height. Pass a number (`px`) or any CSS length string
* (`'80vh'`, `'40rem'`). @default 256
*/
readonly height: _angular_core.InputSignal;
/**
* Pixels of rendered content kept above + below the viewport. CDK
* keeps adding rows until at least this many pixels are buffered.
* @default itemSize * 4
*/
readonly minBufferPx: _angular_core.InputSignal;
/**
* Maximum pixels of buffered content before CDK starts recycling rows.
* Must be ≥ `minBufferPx`. @default itemSize * 8
*/
readonly maxBufferPx: _angular_core.InputSignal;
/**
* `trackBy` function for the inner `*cdkVirtualFor`. Defaults to
* identity (recreates rows when the item reference changes).
*/
readonly trackBy: _angular_core.InputSignal>;
protected readonly rowTemplate: _angular_core.Signal>;
protected readonly viewport: _angular_core.Signal;
protected readonly resolvedHeight: _angular_core.Signal;
protected readonly resolvedMinBuffer: _angular_core.Signal;
protected readonly resolvedMaxBuffer: _angular_core.Signal;
/** Scroll a specific index into view. Mirrors the CDK API. */
scrollToIndex(index: number, behavior?: ScrollBehavior): void;
/** Scroll to a pixel offset. */
scrollToOffset(offset: number, behavior?: ScrollBehavior): void;
/** Manually trigger size recheck (e.g. after host resize outside ResizeObserver). */
checkViewportSize(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration, "wr-virtual-scroll", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "minBufferPx": { "alias": "minBufferPx"; "required": false; "isSignal": true; }; "maxBufferPx": { "alias": "maxBufferPx"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, {}, ["rowTemplate"], never, true, never>;
}
export { WrVirtualScroll };