///
import * as stream from "readable-stream";
import { ConcurrencyCheckMode, IDocumentSession, IDocumentSessionImpl, LoadOptions, SessionLoadInternalParameters, SessionLoadStartingWithOptions } from "./IDocumentSession";
import { DocumentConventions } from "../Conventions/DocumentConventions";
import { ClassConstructor, EntitiesCollectionObject, IRavenObject, ObjectTypeDescriptor } from "../../Types";
import { DocumentType } from "../DocumentAbstractions";
import { InMemoryDocumentSessionOperations } from "./InMemoryDocumentSessionOperations";
import { DocumentStore } from "../DocumentStore";
import { ILoaderWithInclude } from "./Loaders/ILoaderWithInclude";
import { IRawDocumentQuery } from "./IRawDocumentQuery";
import { AdvancedDocumentQueryOptions, DocumentQueryOptions } from "./QueryOptions";
import { IDocumentQuery } from "./IDocumentQuery";
import { IAttachmentsSessionOperations } from "./IAttachmentsSessionOperations";
import { IEagerSessionOperations } from "./Operations/Lazy/IEagerSessionOperations";
import { Lazy } from "../Lazy";
import { ILazyOperation } from "./Operations/Lazy/ILazyOperation";
import { ResponseTimeInformation } from "./ResponseTimeInformation";
import { ILazySessionOperations } from "./Operations/Lazy/ILazySessionOperations";
import { JavaScriptArray } from "./JavaScriptArray";
import { IRevisionsSessionOperations } from "./IRevisionsSessionOperations";
import { DocumentResultStream } from "./DocumentResultStream";
import { IAdvancedSessionOperations, StreamQueryStatisticsCallback } from "./IAdvancedSessionOperations";
import { IClusterTransactionOperations } from "./IClusterTransactionOperations";
import { ClusterTransactionOperationsBase } from "./ClusterTransactionOperationsBase";
import { SessionOptions } from "./SessionOptions";
import { ISessionDocumentCounters } from "./ISessionDocumentCounters";
import { IGraphDocumentQuery } from "./IGraphDocumentQuery";
import { ISessionDocumentTimeSeries } from "./ISessionDocumentTimeSeries";
import { ISessionDocumentTypedTimeSeries } from "./ISessionDocumentTypedTimeSeries";
import { ISessionDocumentRollupTypedTimeSeries } from "./ISessionDocumentRollupTypedTimeSeries";
import { JavaScriptMap } from "./JavaScriptMap";
import { AbstractCommonApiForIndexes } from "../Indexes/AbstractCommonApiForIndexes";
import { ConditionalLoadResult } from "./ConditionalLoadResult";
import { ISessionDocumentIncrementalTimeSeries } from "./ISessionDocumentIncrementalTimeSeries";
import { ISessionDocumentTypedIncrementalTimeSeries } from "./ISessionDocumentTypedIncrementalTimeSeries";
export interface IStoredRawEntityInfo {
originalValue: object;
metadata: object;
originalMetadata: object;
id: string;
changeVector?: string | null;
expectedChangeVector?: string | null;
concurrencyCheckMode: ConcurrencyCheckMode;
documentType: DocumentType;
}
export declare class DocumentSession extends InMemoryDocumentSessionOperations implements IDocumentSession, IDocumentSessionImpl {
constructor(documentStore: DocumentStore, id: string, options: SessionOptions);
get advanced(): IAdvancedSessionOperations;
get session(): InMemoryDocumentSessionOperations;
protected _generateId(entity: object): Promise;
numberOfRequestsInSession: number;
load(id: string): Promise;
load(id: string, options?: LoadOptions): Promise;
load(id: string, documentType?: DocumentType): Promise;
load(ids: string[]): Promise>;
load(ids: string[], options?: LoadOptions): Promise>;
load(ids: string[], documentType?: DocumentType): Promise>;
private _prepareLoadInternalOpts;
private _loadInternal;
saveChanges(): Promise;
refresh(entity: TEntity): Promise;
refresh(entities: TEntity[]): Promise;
private _refreshEntityInternal;
private _refreshEntitiesInternal;
exists(id: string): Promise;
loadStartingWith(idPrefix: string): Promise;
loadStartingWith(idPrefix: string, opts: SessionLoadStartingWithOptions): Promise;
loadStartingWithIntoStream(idPrefix: string, writable: stream.Writable): Promise;
loadStartingWithIntoStream(idPrefix: string, writable: stream.Writable, opts: SessionLoadStartingWithOptions): Promise;
loadIntoStream(ids: string[], writable: stream.Writable): Promise;
private _loadStartingWithInternal;
loadInternal(ids: string[], opts: SessionLoadInternalParameters): Promise>;
include(path: string): ILoaderWithInclude;
increment(id: string, path: string, valueToAdd: UValue): void;
increment(entity: T, path: string, valueToAdd: UValue): void;
addOrIncrement(id: string, entity: T, pathToObject: string, valToAdd: UValue): void;
addOrPatchArray(id: string, entity: T, pathToArray: string, arrayAdder: (array: JavaScriptArray) => void): void;
addOrPatch(id: string, entity: T, pathToObject: string, value: UValue): void;
private _valsCount;
private _customCount;
patch(id: string, path: string, value: UValue): void;
patch(entity: TEntity, path: string, value: UValue): void;
patchArray(id: string, pathToArray: string, arrayAdder: (array: JavaScriptArray) => void): void;
patchArray(entity: TEntity, pathToArray: string, arrayAdder: (array: JavaScriptArray) => void): void;
patchObject(entity: TEntity, pathToObject: string, mapAdder: (map: JavaScriptMap) => void): void;
patchObject(id: string, pathToObject: string, mapAdder: (map: JavaScriptMap) => void): void;
private _tryMergePatches;
rawQuery(query: string, documentType?: DocumentType): IRawDocumentQuery;
query(documentType: DocumentType): IDocumentQuery;
query(documentType: DocumentType, index: new () => AbstractCommonApiForIndexes): IDocumentQuery;
query(opts: DocumentQueryOptions): IDocumentQuery;
documentQuery(opts: AdvancedDocumentQueryOptions): IDocumentQuery;
documentQuery(documentType: DocumentType): IDocumentQuery;
protected _processQueryParameters(opts: AdvancedDocumentQueryOptions, conventions: DocumentConventions): {
indexName: string;
collection: string;
};
private _attachments;
get attachments(): IAttachmentsSessionOperations;
private _revisions;
get revisions(): IRevisionsSessionOperations;
private _clusterTransaction;
get clusterTransaction(): IClusterTransactionOperations;
protected _hasClusterSession(): boolean;
protected _clearClusterSession(): void;
get clusterSession(): ClusterTransactionOperationsBase;
get lazily(): ILazySessionOperations;
get eagerly(): IEagerSessionOperations;
executeAllPendingLazyOperations(): Promise;
private _executeLazyOperationsSingleStep;
addLazyOperation(operation: ILazyOperation): Lazy;
addLazyCountOperation(operation: ILazyOperation): Lazy;
lazyLoadInternal(ids: string[], includes: string[], clazz: ObjectTypeDescriptor): Lazy>;
stream(query: IDocumentQuery): Promise>;
stream(query: IDocumentQuery, streamQueryStats: StreamQueryStatisticsCallback): Promise>;
stream(query: IRawDocumentQuery): Promise>;
stream(query: IRawDocumentQuery, streamQueryStats: StreamQueryStatisticsCallback): Promise>;
stream(idPrefix: string): Promise>;
stream(idPrefix: string, opts: SessionLoadStartingWithOptions): Promise>;
private _streamStartingWith;
private _streamQueryResults;
private _getStreamResultTransform;
streamInto(query: IDocumentQuery, writable: stream.Writable): Promise;
streamInto(query: IRawDocumentQuery, writable: stream.Writable): Promise;
countersFor(documentId: string): ISessionDocumentCounters;
countersFor(entity: object): ISessionDocumentCounters;
graphQuery(query: string, documentType?: DocumentType): IGraphDocumentQuery;
timeSeriesFor(documentId: string, name: string): ISessionDocumentTimeSeries;
timeSeriesFor(entity: any, name: string): ISessionDocumentTimeSeries;
timeSeriesFor(documentId: string, clazz: ClassConstructor): ISessionDocumentTypedTimeSeries;
timeSeriesFor(documentId: string, name: string, clazz: ClassConstructor): ISessionDocumentTypedTimeSeries;
timeSeriesFor(entity: object, clazz: ClassConstructor): ISessionDocumentTypedTimeSeries;
timeSeriesFor(entity: object, name: string, clazz: ClassConstructor): ISessionDocumentTypedTimeSeries;
timeSeriesRollupFor(entity: object, policy: string, clazz: ClassConstructor): ISessionDocumentRollupTypedTimeSeries;
timeSeriesRollupFor(entity: object, policy: string, raw: string, clazz: ClassConstructor): ISessionDocumentRollupTypedTimeSeries;
timeSeriesRollupFor(documentId: string, policy: string, clazz: ClassConstructor): ISessionDocumentRollupTypedTimeSeries;
timeSeriesRollupFor(documentId: string, policy: string, raw: string, clazz: ClassConstructor): ISessionDocumentRollupTypedTimeSeries;
incrementalTimeSeriesFor(documentId: string, name: string): ISessionDocumentIncrementalTimeSeries;
incrementalTimeSeriesFor(entity: object, name: string): ISessionDocumentIncrementalTimeSeries;
incrementalTimeSeriesFor(documentId: string, clazz: ClassConstructor): ISessionDocumentTypedIncrementalTimeSeries;
incrementalTimeSeriesFor(documentId: string, name: string, clazz: ClassConstructor): ISessionDocumentTypedIncrementalTimeSeries;
incrementalTimeSeriesFor(entity: object, clazz: ClassConstructor): ISessionDocumentTypedIncrementalTimeSeries;
incrementalTimeSeriesFor(entity: object, name: string, clazz: ClassConstructor): ISessionDocumentTypedIncrementalTimeSeries;
conditionalLoad(id: string, changeVector: string, clazz: ClassConstructor): Promise>;
}