import { UIObject } from "./UIObject";
export interface UIKeyValueStringSorterSortingInstruction {
    keyPath: string;
    dataType: string;
    direction: string;
}
export declare class UIKeyValueStringSorter extends UIObject {
    static _sharedWebWorkerHolder: {
        UICore_completionFunctions: {};
        UICore_isWorking: boolean;
        UICore_messagesToPost: undefined;
        webWorker: any;
    };
    static _instanceNumber: number;
    _instanceNumber: number;
    _isThreadClosed: boolean;
    private readonly _webWorkerHolder;
    constructor(useSeparateWebWorkerHolder?: boolean);
    get instanceIdentifier(): number;
    get completionFunctions(): {
        [x: string]: (sortedData: any[], sortedIndexes: number[], identifier: any) => void;
    };
    get messagesToPost(): any[];
    set isWorkerBusy(isWorkerBusy: boolean);
    get isWorkerBusy(): boolean;
    postNextMessageIfNeeded(): void;
    static dataType: {
        string: string;
    };
    static direction: {
        descending: string;
        ascending: string;
    };
    sortData<T>(data: T[], sortingInstructions: UIKeyValueStringSorterSortingInstruction[], identifier: any, completion: (sortedData: T[], sortedIndexes: number[], identifier: any) => void): void;
    sortedData<T>(data: T[], sortingInstructions: UIKeyValueStringSorterSortingInstruction[], identifier?: any): Promise<{
        sortedData: T[];
        sortedIndexes: number[];
        identifier: any;
    }>;
    closeThread(): void;
}
