import { DataService, DataServiceAdapter, SaveContext, Entity, EntityKey, JsonResultsAdapter, MappingContext, MetadataStore, SaveBundle, SaveResult } from 'breeze-client';
export interface OData4SaveContext extends SaveContext {
    tempKeys: EntityKey[];
    contentKeys: Entity[];
}
export interface IEnum {
    contains(object: any): boolean;
    fromName(name: string): EnumSymbol;
    getNames(): string[];
    getSymbols(): EnumSymbol[];
}
export interface Enum extends BreezeEnum {
    constructor(name: string, methodObj?: any): any;
    addSymbol(propertiesObj?: any): EnumSymbol;
    contains(object: any): boolean;
    fromName(name: string): EnumSymbol;
    getNames(): string[];
    getSymbols(): EnumSymbol[];
    resolveSymbols(): void;
}
export interface EnumSymbol {
    parentEnum: IEnum;
    getName(): string;
    toString(): string;
}
import { QueryResult, ServerError } from 'breeze-client/src/entity-manager';
import { Edmx } from 'ts-odatajs';
import { ChangeRequestInterceptorCtor } from 'breeze-client/src/interface-registry';
import { BreezeEnum } from 'breeze-client/src/enum';
export declare class ProxyDataService {
}
export declare class OData4DataService extends ProxyDataService implements DataServiceAdapter {
    changeRequestInterceptor: ChangeRequestInterceptorCtor;
    private innerAdapter;
    private metadataAdapters;
    private functions;
    private actions;
    name: string;
    headers: {
        [name: string]: string;
    };
    metadataAcceptHeader: string;
    metadata: Edmx.Edmx;
    jsonResultsAdapter: JsonResultsAdapter;
    static register(): void;
    constructor();
    _catchNoConnectionError(err: ServerError): any;
    _createChangeRequestInterceptor(saveContext: OData4SaveContext, saveBundle: SaveBundle): {
        getRequest: <T>(request: T, entity: Entity, index: number) => T;
        done: (requests: Object[]) => void;
    };
    checkForRecomposition(interfaceInitializedArgs: {
        interfaceName: string;
        isDefault: boolean;
    }): void;
    initialize(): void;
    getAbsoluteUrl(dataService: DataService, url: string): string;
    fetchMetadata(metadataStore: MetadataStore, dataService: DataService): Promise<Edmx.DataServices>;
    executeQuery(mappingContext: MappingContext): Promise<QueryResult>;
    saveChanges(saveContext: OData4SaveContext, saveBundle: SaveBundle): Promise<SaveResult>;
    private createChangeRequests(saveContext, saveBundle);
    private getRequest(mappingContext);
    private getData(mappingContext, data);
    private areValidPropertyNames(metadataStore, data);
    private getInvokableConfig(url);
    private getUrl(mappingContext);
    private addQueryString(url, parameters);
    private transformValue(prop, val);
    private updateDeleteMergeRequest(request, aspect, routePrefix);
    private getUriKey(aspect);
    private fmtProperty(prop, aspect);
    private createError(error, url);
    private getMessage(body);
    private fixODataFormats();
    private toQueryString(payload);
}
