import * as i0 from "@angular/core"; /** * Enterprise virtualization engine for the DataGrid. * Handles both row (vertical) and column (horizontal) virtualization * for high-performance rendering of massive datasets (100K+ rows, 200+ columns). * * Row virtualization renders only the visible rows plus a configurable buffer, * using spacer elements to maintain correct scroll position. * * Column virtualization renders only the visible columns plus a buffer, * using left/right spacer cells to maintain correct horizontal scroll position. */ export declare class GridVirtualizationService { readonly rowHeight: import("@angular/core").WritableSignal; readonly viewportHeight: import("@angular/core").WritableSignal; readonly viewportWidth: import("@angular/core").WritableSignal; readonly scrollTop: import("@angular/core").WritableSignal; readonly scrollLeft: import("@angular/core").WritableSignal; readonly totalRows: import("@angular/core").WritableSignal; readonly columnWidths: import("@angular/core").WritableSignal; readonly rowBuffer: import("@angular/core").WritableSignal; readonly colBuffer: import("@angular/core").WritableSignal; private readonly rowHeightCache; readonly useVariableHeight: import("@angular/core").WritableSignal; readonly infiniteScrollEnabled: import("@angular/core").WritableSignal; readonly infiniteScrollThreshold: import("@angular/core").WritableSignal; readonly isLoadingMore: import("@angular/core").WritableSignal; private loadedBlockRanges; /** Index of the first visible row (0-based) */ readonly startRowIndex: import("@angular/core").Signal; /** Index of the last visible row (0-based, exclusive) */ readonly endRowIndex: import("@angular/core").Signal; /** Total virtual content height for the scrollbar */ readonly totalContentHeight: import("@angular/core").Signal; /** Top spacer height (space before the first rendered row) */ readonly topSpacerHeight: import("@angular/core").Signal; /** Bottom spacer height (space after the last rendered row) */ readonly bottomSpacerHeight: import("@angular/core").Signal; /** Number of rows currently rendered in the DOM */ readonly renderedRowCount: import("@angular/core").Signal; /** Index of the first visible column (0-based) */ readonly startColIndex: import("@angular/core").Signal; /** Index of the last visible column (0-based, exclusive) */ readonly endColIndex: import("@angular/core").Signal; /** Total virtual content width for horizontal scrollbar */ readonly totalContentWidth: import("@angular/core").Signal; /** Left spacer width (space before first rendered column) */ readonly leftSpacerWidth: import("@angular/core").Signal; /** Right spacer width (space after last rendered column) */ readonly rightSpacerWidth: import("@angular/core").Signal; /** Update scroll position from the viewport scroll event */ onScroll(scrollTop: number, scrollLeft: number): void; /** Update viewport dimensions (e.g., on resize) */ updateViewportSize(width: number, height: number): void; /** Set or update the measured height for a specific row (variable height mode) */ setRowHeight(rowIndex: number, height: number): void; /** Get the height of a specific row */ getRowHeight(rowIndex: number): number; /** Clear the variable row height cache */ clearHeightCache(): void; /** Scroll to a specific row index */ scrollToRow(rowIndex: number): number; /** Scroll to a specific column index */ scrollToColumn(colIndex: number): number; /** Check if we should trigger loading more data */ shouldLoadMore(): boolean; /** Register a loaded block range */ registerLoadedBlock(start: number, end: number): void; /** Check if a row index has been loaded */ isRowLoaded(rowIndex: number): boolean; /** Reset infinite scroll state */ resetInfiniteScroll(): void; /** Find the row index at a given pixel offset (variable height) */ private findRowAtOffset; /** Compute the total height of all rows (variable height) */ private computeTotalVariableHeight; /** Compute the combined height of rows in a range [startIdx, endIdx) */ private computeHeightRange; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }