import { BaseGridPlugin, PluginQuery } from '../../core/plugin/base-plugin';
import { ColumnConfig } from '../../core/types';
import { PinnedColumnsConfig } from './types';
/**
 * Pinned Columns Plugin for tbw-grid
 *
 * @example
 * ```ts
 * new PinnedColumnsPlugin({ enabled: true })
 * ```
 */
export declare class PinnedColumnsPlugin extends BaseGridPlugin<PinnedColumnsConfig> {
    readonly name = "pinnedColumns";
    protected get defaultConfig(): Partial<PinnedColumnsConfig>;
    private isApplied;
    private leftOffsets;
    private rightOffsets;
    detach(): void;
    /**
     * Auto-detect sticky columns from column configuration.
     */
    static detect(rows: readonly unknown[], config: {
        columns?: ColumnConfig[];
    }): boolean;
    processColumns(columns: readonly ColumnConfig[]): ColumnConfig[];
    afterRender(): void;
    /**
     * Handle inter-plugin queries.
     */
    onPluginQuery(query: PluginQuery): unknown;
    /**
     * Re-apply sticky offsets (e.g., after column resize).
     */
    refreshStickyOffsets(): void;
    /**
     * Get columns pinned to the left.
     */
    getLeftPinnedColumns(): ColumnConfig[];
    /**
     * Get columns pinned to the right.
     */
    getRightPinnedColumns(): ColumnConfig[];
    /**
     * Clear all sticky positioning.
     */
    clearStickyPositions(): void;
    /**
     * Report horizontal scroll boundary offsets for pinned columns.
     * Used by keyboard navigation to ensure focused cells aren't hidden behind sticky columns.
     */
    getHorizontalScrollOffsets(rowEl?: HTMLElement, focusedCell?: HTMLElement): {
        left: number;
        right: number;
        skipScroll?: boolean;
    } | undefined;
}
//# sourceMappingURL=PinnedColumnsPlugin.d.ts.map