/// <reference types="xrm" />
import { Entity } from './definitions';
export declare class InMemoryWebApi implements Xrm.WebApi {
    private testContext;
    constructor(testContext: TestApiContext);
    init(entities: Entity[]): void;
    private entities;
    private getEntitiesByLogicalName;
    private getIndex;
    get(entityLogicalName: string, id: string): Entity;
    private replace;
    isAvailableOffline(entityLogicalName: string): boolean;
    online: Xrm.WebApiOnline;
    offline: Xrm.WebApiOffline;
    getEntities(): Entity[];
    createRecord(entityLogicalName: string, record: any): Xrm.Async.PromiseLike<Xrm.CreateResponse>;
    deleteRecord(entityLogicalName: string, id: string): Xrm.Async.PromiseLike<string>;
    retrieveRecord(entityLogicalName: string, id: string, options?: string): Xrm.Async.PromiseLike<any>;
    retrieveMultipleRecords(entityLogicalName: string, options?: string, maxPageSize?: number): Xrm.Async.PromiseLike<Xrm.RetrieveMultipleResult>;
    updateRecord(entityLogicalName: string, id: string, data: any): Xrm.Async.PromiseLike<any>;
}
export declare class TestApiContext {
    private _createdEntities;
    get createdEntities(): Entity[];
    private _updatedEntities;
    get updatedEntities(): Entity[];
    private _deletedEntities;
    get deletedEntities(): Entity[];
    private _webApi;
    get webApi(): InMemoryWebApi;
    init(entities: Entity[]): void;
}
