/**
* DevExtreme (data/odata/store.d.ts)
* Version: 21.1.0 (build 21016-0316)
* Build date: Sat Jan 16 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import '../../jquery_augmentation';

import Store, {
    StoreOptions
} from '../abstract_store';

import {
    LoadOptions
} from '../load_options';

/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export interface ODataStoreOptions extends StoreOptions<ODataStore> {
    /**
     */
    beforeSend?: ((options: { url?: string, async?: boolean, method?: string, timeout?: number, params?: any, payload?: any, headers?: any }) => any);
    /**
     */
    deserializeDates?: boolean;
    /**
     */
    errorHandler?: ((e: { httpStatus?: number, errorDetails?: any, requestOptions?: any }) => any);
    /**
     */
    fieldTypes?: any;
    /**
     */
    filterToLower?: boolean;
    /**
     */
    jsonp?: boolean;
    /**
     */
    keyType?: 'String' | 'Int32' | 'Int64' | 'Guid' | 'Boolean' | 'Single' | 'Decimal' | any;
    /**
     */
    onLoading?: ((loadOptions: LoadOptions) => any);
    /**
     */
    url?: string;
    /**
     */
    version?: number;
    /**
     */
    withCredentials?: boolean;
}
/**
 */
export default class ODataStore extends Store {
    constructor(options?: ODataStoreOptions)
    byKey(key: any | string | number): Promise<any> & JQueryPromise<any>;
    /**
     */
    byKey(key: any | string | number, extraOptions: { expand?: string | Array<string>, select?: string | Array<string> }): Promise<any> & JQueryPromise<any>;
    /**
     */
    createQuery(loadOptions: any): any;
}
