import { DataManager } from './manager';
import { NumberFormatOptions, DateFormatOptions } from '@syncfusion/ej2-base';
/**
* Query class is used to build query which is used by the DataManager to communicate with datasource.
*/
export declare class Query {
/** @hidden */
queries: QueryOptions[];
/** @hidden */
key: string;
/** @hidden */
fKey: string;
/** @hidden */
fromTable: string;
/** @hidden */
lookups: string[];
/** @hidden */
expands: Object[];
/** @hidden */
sortedColumns: Object[];
/** @hidden */
groupedColumns: Object[];
/** @hidden */
subQuerySelector: Function;
/** @hidden */
subQuery: Query;
/** @hidden */
isChild: boolean;
/** @hidden */
params: ParamOption[];
/** @hidden */
lazyLoad: {
key: string;
value: object | boolean;
}[];
/** @hidden */
isCountRequired: boolean;
/** @hidden */
dataManager: DataManager;
/** @hidden */
distincts: string[];
/** @hidden */
readonly moduleName: string;
/**
* Constructor for Query class.
*
* @param {string|string[]} from?
* @param from
* @hidden
*/
constructor(from?: string | string[]);
/**
* Sets the primary key.
*
* @param {string} field - Defines the column field.
*/
setKey(field: string): Query;
/**
* Sets default DataManager to execute query.
*
* @param {DataManager} dataManager - Defines the DataManager.
*/
using(dataManager: DataManager): Query;
/**
* Executes query with the given DataManager.
*
* @param {DataManager} dataManager - Defines the DataManager.
* @param {Function} done - Defines the success callback.
* @param {Function} fail - Defines the failure callback.
* @param {Function} always - Defines the callback which will be invoked on either success or failure.
*
*
* let dataManager: DataManager = new DataManager([{ ID: '10' }, { ID: '2' }, { ID: '1' }, { ID: '20' }]);
* let query: Query = new Query();
* query.sortBy('ID', (x: string, y: string): number => { return parseInt(x, 10) - parseInt(y, 10) });
* let promise: Promise< Object > = query.execute(dataManager);
* promise.then((e: { result: Object }) => { });
*
*/
execute(dataManager?: DataManager, done?: Function, fail?: Function, always?: Function): Promise