import { BaseGridPlugin, HeaderClickEvent } from '../../core/plugin/base-plugin';
import { ColumnState } from '../../core/types';
import { MultiSortConfig, SortModel } from './types';
/**
 * Multi-Sort Plugin for tbw-grid
 *
 * @example
 * ```ts
 * new MultiSortPlugin({ maxSortColumns: 3, showSortIndex: true })
 * ```
 */
export declare class MultiSortPlugin extends BaseGridPlugin<MultiSortConfig> {
    readonly name = "multiSort";
    readonly styles: string;
    protected get defaultConfig(): Partial<MultiSortConfig>;
    private sortModel;
    detach(): void;
    processRows(rows: readonly unknown[]): unknown[];
    onHeaderClick(event: HeaderClickEvent): boolean;
    afterRender(): void;
    /**
     * Get the current sort model.
     * @returns Copy of the current sort model
     */
    getSortModel(): SortModel[];
    /**
     * Set the sort model programmatically.
     * @param model - New sort model to apply
     */
    setSortModel(model: SortModel[]): void;
    /**
     * Clear all sorting.
     */
    clearSort(): void;
    /**
     * Get the sort index (1-based) for a specific field.
     * @param field - Field to check
     * @returns 1-based index or undefined if not sorted
     */
    getSortIndex(field: string): number | undefined;
    /**
     * Get the sort direction for a specific field.
     * @param field - Field to check
     * @returns Sort direction or undefined if not sorted
     */
    getSortDirection(field: string): 'asc' | 'desc' | undefined;
    /**
     * Return sort state for a column if it's in the sort model.
     */
    getColumnState(field: string): Partial<ColumnState> | undefined;
    /**
     * Apply sort state from column state.
     * Rebuilds the sort model from all column states.
     */
    applyColumnState(field: string, state: ColumnState): void;
}
//# sourceMappingURL=MultiSortPlugin.d.ts.map