import { BaseGridPlugin, ScrollEvent } from '../../core/plugin/base-plugin';
import { ColumnConfig } from '../../core/types';
import { ColumnVirtualizationConfig } from './types';
/**
 * Column Virtualization Plugin for tbw-grid
 *
 * Provides horizontal column virtualization for grids with many columns (30+).
 * Only renders visible columns plus overscan, significantly improving rendering
 * performance for wide grids.
 *
 * ## Installation
 *
 * ```ts
 * import { ColumnVirtualizationPlugin } from '@toolbox-web/grid/plugins/column-virtualization';
 * ```
 *
 * ## Configuration Options
 *
 * | Option | Type | Default | Description |
 * |--------|------|---------|-------------|
 * | `autoEnable` | `boolean` | `true` | Auto-enable when column count exceeds threshold |
 * | `threshold` | `number` | `30` | Column count threshold for auto-enable |
 * | `overscan` | `number` | `3` | Extra columns to render beyond visible |
 *
 * ## Requirements
 *
 * - Grid must use `fitMode: 'fixed'`
 * - Columns must have explicit widths
 * - Grid must have fixed height
 *
 * ## Programmatic API
 *
 * | Method | Signature | Description |
 * |--------|-----------|-------------|
 * | `isEnabled` | `() => boolean` | Check if virtualization is active |
 * | `setEnabled` | `(enabled: boolean) => void` | Enable/disable virtualization |
 * | `getVisibleRange` | `() => { start, end }` | Get visible column range |
 *
 * @example Wide Grid with Column Virtualization
 * ```ts
 * import '@toolbox-web/grid';
 * import { ColumnVirtualizationPlugin } from '@toolbox-web/grid/plugins/column-virtualization';
 *
 * grid.gridConfig = {
 *   columns: generateManyColumns(100), // 100 columns
 *   fitMode: 'fixed',                  // Required
 *   plugins: [
 *     new ColumnVirtualizationPlugin({
 *       threshold: 30,  // Enable when >30 columns
 *       overscan: 3,    // Render 3 extra columns each side
 *     }),
 *   ],
 * };
 * ```
 *
 * @see {@link ColumnVirtualizationConfig} for configuration options
 *
 * @internal Extends BaseGridPlugin
 */
export declare class ColumnVirtualizationPlugin extends BaseGridPlugin<ColumnVirtualizationConfig> {
    /** @internal */
    readonly name = "columnVirtualization";
    /** @internal */
    protected get defaultConfig(): Partial<ColumnVirtualizationConfig>;
    private isVirtualized;
    private startCol;
    private endCol;
    private scrollLeft;
    private totalWidth;
    private columnWidths;
    private columnOffsets;
    /** @internal */
    attach(grid: import('../../core/plugin/base-plugin').GridElement): void;
    /** @internal */
    detach(): void;
    /** @internal */
    processColumns(columns: readonly ColumnConfig[]): ColumnConfig[];
    /** @internal */
    afterRender(): void;
    /** @internal */
    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