import type TableColumn from './column';
import OrderingDirection from './column-ordering-direction';
type OrderingValue = {
    name: string;
    direction: OrderingDirection;
};
type TransformationFunctionVerbose = (columns: OrderingValue[]) => string[];
export type TransformationFunctionBase = (columns: OrderingValue[]) => {
    name: any;
    direction: OrderingDirection;
}[];
export default class ColumnOrdering {
    direction: OrderingDirection;
    changeCounter: number;
    column: any;
    orderingArray: ColumnOrdering[];
    isOrderable: boolean;
    isOrdered: boolean;
    segment: number;
    /**
     * Column ordering management utility
     *
     * @param orderingString: e.g. ordering asc seg-1
     * @param orderingArray: a common array (created in columns.js) containing all order segments
     * @param column: TableColumn reference to the column itself. Needed for error messages below
     */
    constructor(orderingString: string, orderingArray: ColumnOrdering[], column: TableColumn);
    /**
     * cycles field ordering 'asc' -> 'desc' -> 'unsorted'
     */
    cycleOrdering(): void;
    /**
     * sets column sort sequence and direction
     * @param direction: one of "asc", "desc" or "unsorted"
     * @param sequence: integer. if none is provided, existing sequence # will be used
     * or 1 if column was unsorted
     */
    setSorted(direction: number, sequence?: number): void;
    handleColumnHeaderClick(event: MouseEvent): void;
    calculateOrderingValue(transformationFunction?: TransformationFunctionVerbose): string[];
    calculateOrderingFunction(transformationFunction?: TransformationFunctionBase): {
        name: any;
        direction: OrderingDirection;
    }[];
}
export {};
//# sourceMappingURL=column-ordering.d.ts.map