import { DateService } from "../../services/date-service";
export declare class SortValueConverter {
    private dateService;
    constructor(dateService: DateService);
    toView(array: Array<any>, columnState: IColumnState, enabled?: boolean): any[] | null;
    private evaluateValues(fnEvaluator, a, b, columnState, factor);
    private getColumnValue(row, columnState);
    private getTieBreaker(row, columnState);
    private getEvaluatorForDataType(dataType?);
    private evaluateNumber(a, b, factor);
    private evaluateString(a, b, factor);
    private evaluateDateTime(valueA, valueB, factor);
}
export declare enum SortDataType {
    string = 1,
    number = 2,
    datetime = 3,
    boolean = 4,
    integer = 5,
}
export declare type SortRowValueResolver = (row: any, data: any) => string;
export interface ISortRowValueResolver {
    fnGetRowValue: SortRowValueResolver;
    data?: any;
}
export interface IColumnState {
    descending?: boolean;
    columnName: string;
    valueResolver?: ISortRowValueResolver;
    tieBreakerColumnName?: string;
    tieBreakerDataType?: SortDataType;
    dataType: SortDataType;
    ordinalPositionPropertyName?: string;
    sortEnabled: boolean;
}
