import { BaseGridPlugin } from '../../core/plugin/base-plugin';
import { ReorderConfig } from './types';
/**
 * Column Reordering Plugin for tbw-grid
 *
 * @example
 * ```ts
 * new ReorderPlugin()
 * ```
 */
export declare class ReorderPlugin extends BaseGridPlugin<ReorderConfig> {
    readonly name = "reorder";
    readonly styles: string;
    protected get defaultConfig(): Partial<ReorderConfig>;
    /**
     * Resolve animation type from plugin config.
     * Uses base class isAnimationEnabled to respect grid-level settings.
     */
    private get animationType();
    /**
     * Get animation duration, allowing plugin config override.
     * Uses base class animationDuration for default.
     */
    protected get animationDuration(): number;
    private isDragging;
    private draggedField;
    private draggedIndex;
    private dropIndex;
    /**
     * Check if a column can be moved, considering both column config and plugin queries.
     */
    private canMoveColumnWithPlugins;
    /**
     * Clear all drag-related classes from header cells.
     */
    private clearDragClasses;
    attach(grid: import('../../core/plugin/base-plugin').GridElement): void;
    detach(): void;
    afterRender(): void;
    /**
     * Handle Alt+Arrow keyboard shortcuts for column reordering.
     */
    onKeyDown(event: KeyboardEvent): boolean | void;
    /**
     * Get the current column order from the grid.
     * @returns Array of field names in display order
     */
    getColumnOrder(): string[];
    /**
     * Move a column to a new position.
     * @param field - The field name of the column to move
     * @param toIndex - The target index
     */
    moveColumn(field: string, toIndex: number): void;
    /**
     * Set a specific column order.
     * @param order - Array of field names in desired order
     */
    setColumnOrder(order: string[]): void;
    /**
     * Reset column order to the original configuration order.
     */
    resetColumnOrder(): void;
    /**
     * Capture header cell positions before reorder.
     */
    private captureHeaderPositions;
    /**
     * Apply FLIP animation for column reorder.
     * Uses CSS transitions - JS sets initial transform and toggles class.
     * @param oldPositions - Header positions captured before DOM change
     */
    private animateFLIP;
    /**
     * Apply crossfade animation for moved columns.
     * Uses CSS keyframes - JS just toggles classes.
     */
    private animateFade;
    /**
     * Update column order with configured animation.
     */
    private updateColumnOrder;
}
//# sourceMappingURL=ReorderPlugin.d.ts.map