import { Lazy } from "../Lazy"; import { DocumentConventions } from "../Conventions/DocumentConventions"; import { IDisposable } from "../../Types/Contracts"; import { DocumentType } from "../DocumentAbstractions"; import { ClassConstructor, EntitiesCollectionObject, ObjectTypeDescriptor } from "../../Types"; import { IAdvancedSessionOperations } from "./IAdvancedSessionOperations"; import { ILoaderWithInclude } from "./Loaders/ILoaderWithInclude"; import { DocumentQueryOptions } from "./QueryOptions"; import { IDocumentQuery } from "./IDocumentQuery"; import { IIncludeBuilder } from "./Loaders/IIncludeBuilder"; import { ISessionDocumentCounters } from "./ISessionDocumentCounters"; import { ISessionDocumentTimeSeries } from "./ISessionDocumentTimeSeries"; import { ISessionDocumentTypedTimeSeries } from "./ISessionDocumentTypedTimeSeries"; import { ISessionDocumentRollupTypedTimeSeries } from "./ISessionDocumentRollupTypedTimeSeries"; import { InMemoryDocumentSessionOperations } from "./InMemoryDocumentSessionOperations"; import { SessionOptions } from "./SessionOptions"; import { DocumentStoreBase } from "../DocumentStoreBase"; import { RequestExecutor } from "../../Http/RequestExecutor"; import { AbstractCommonApiForIndexes } from "../Indexes/AbstractCommonApiForIndexes"; import { AbstractTimeSeriesRange } from "../Operations/TimeSeries/AbstractTimeSeriesRange"; import { ISessionDocumentTypedIncrementalTimeSeries } from "./ISessionDocumentTypedIncrementalTimeSeries"; import { ISessionDocumentIncrementalTimeSeries } from "./ISessionDocumentIncrementalTimeSeries"; export declare class SessionInfo { private static _clientSessionIdCounter; private _sessionId; private _sessionIdUsed; private readonly _loadBalancerContextSeed; private _canUseLoadBalanceBehavior; private readonly _session; lastClusterTransactionIndex: number; noCaching: boolean; constructor(session: InMemoryDocumentSessionOperations, options: SessionOptions, documentStore: DocumentStoreBase); incrementRequestCount(): void; setContext(sessionKey: string): void; private _setContextInternal; getCurrentSessionNode(requestExecutor: RequestExecutor): Promise; getSessionId(): number; canUseLoadBalanceBehavior(): boolean; } export type ConcurrencyCheckMode = "Auto" | "Forced" | "Disabled"; export interface IDocumentSession extends IDisposable { advanced: IAdvancedSessionOperations; load(id: string): Promise; load(id: string, documentType?: DocumentType): Promise; load(id: string, options?: LoadOptions): Promise; load(ids: string[]): Promise>; load(ids: string[], documentType?: DocumentType): Promise>; load(ids: string[], options?: LoadOptions): Promise>; delete(id: string): Promise; delete(id: string, expectedChangeVector: string): Promise; delete(entity: TEntity): Promise; store(document: TEntity): Promise; store(document: TEntity, id?: string): Promise; store(document: TEntity, id?: string, documentType?: DocumentType): Promise; store(document: TEntity, id?: string, options?: StoreOptions): Promise; include(path: string): ILoaderWithInclude; saveChanges(): Promise; query(opts: DocumentQueryOptions): IDocumentQuery; query(documentType: DocumentType): IDocumentQuery; query(documentType: DocumentType, index: new () => AbstractCommonApiForIndexes): IDocumentQuery; countersFor(documentId: string): ISessionDocumentCounters; countersFor(entity: object): ISessionDocumentCounters; timeSeriesFor(documentId: string, name: string): ISessionDocumentTimeSeries; timeSeriesFor(entity: any, name: string): ISessionDocumentTimeSeries; timeSeriesFor(documentId: string, clazz: ObjectTypeDescriptor): ISessionDocumentTypedTimeSeries; timeSeriesFor(documentId: string, name: string, clazz: ObjectTypeDescriptor): ISessionDocumentTypedTimeSeries; timeSeriesFor(entity: object, clazz: ObjectTypeDescriptor): ISessionDocumentTypedTimeSeries; timeSeriesFor(entity: object, name: string, clazz: ObjectTypeDescriptor): 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: ObjectTypeDescriptor): ISessionDocumentTypedIncrementalTimeSeries; incrementalTimeSeriesFor(documentId: string, name: string, clazz: ObjectTypeDescriptor): ISessionDocumentTypedIncrementalTimeSeries; incrementalTimeSeriesFor(entity: object, clazz: ObjectTypeDescriptor): ISessionDocumentTypedIncrementalTimeSeries; incrementalTimeSeriesFor(entity: object, name: string, clazz: ObjectTypeDescriptor): ISessionDocumentTypedIncrementalTimeSeries; } export interface StoreOptions { documentType?: DocumentType; changeVector?: string; } export interface LoadOptions { documentType?: DocumentType; includes?: string[] | ((includesBuilder: IIncludeBuilder) => void); expectedChangeVector?: string; } export interface SessionLoadStartingWithOptions extends StartingWithOptions { matches?: string; start?: number; pageSize?: number; exclude?: string; startAfter?: string; documentType?: DocumentType; streamResults?: boolean; } export interface StartingWithOptions { matches?: string; start?: number; pageSize?: number; exclude?: string; startAfter?: string; } export interface SessionLoadInternalParameters { includes?: string[]; documentType?: DocumentType; counterIncludes?: string[]; includeAllCounters?: boolean; timeSeriesIncludes?: AbstractTimeSeriesRange[]; compareExchangeValueIncludes?: string[]; revisionIncludesByChangeVector?: string[]; revisionsToIncludeByDateTime?: Date; } export interface IDocumentSessionImpl extends IDocumentSession { conventions: DocumentConventions; loadInternal(ids: string[], opts: SessionLoadInternalParameters): Promise>; lazyLoadInternal(ids: string[], includes: string[], clazz: ObjectTypeDescriptor): Lazy>; }