import { BaseGridPlugin, ScrollEvent } from '../../core/plugin/base-plugin';
import { ColumnConfig } from '../../core/types';
import { ColumnVirtualizationConfig } from './types';
/**
 * Column Virtualization Plugin for tbw-grid
 *
 * @example
 * ```ts
 * new ColumnVirtualizationPlugin({ threshold: 30, overscan: 3 })
 * ```
 */
export declare class ColumnVirtualizationPlugin extends BaseGridPlugin<ColumnVirtualizationConfig> {
    readonly name = "columnVirtualization";
    protected get defaultConfig(): Partial<ColumnVirtualizationConfig>;
    private isVirtualized;
    private startCol;
    private endCol;
    private scrollLeft;
    private totalWidth;
    private columnWidths;
    private columnOffsets;
    attach(grid: import('../../core/plugin/base-plugin').GridElement): void;
    detach(): void;
    processColumns(columns: readonly ColumnConfig[]): ColumnConfig[];
    afterRender(): void;
    onScroll(event: ScrollEvent): void;
    /**
     * Check if column virtualization is currently active.
     */
    getIsVirtualized(): boolean;
    /**
     * Get the current visible column range.
     */
    getVisibleColumnRange(): {
        start: number;
        end: number;
    };
    /**
     * Scroll the grid to bring a specific column into view.
     * @param columnIndex - Index of the column to scroll to
     */
    scrollToColumn(columnIndex: number): void;
    /**
     * Get the left offset for a specific column.
     * @param columnIndex - Index of the column
     */
    getColumnOffset(columnIndex: number): number;
    /**
     * Get the total width of all columns.
     */
    getTotalWidth(): number;
}
//# sourceMappingURL=ColumnVirtualizationPlugin.d.ts.map