import { RevisionsCollectionObject } from "../../Types"; import { DocumentType } from "../DocumentAbstractions"; import { MetadataAsDictionary } from "../../Mapping/MetadataAsDictionary"; import { ForceRevisionStrategy } from "./ForceRevisionStrategy"; import { ILazyRevisionsOperations } from "./ILazyRevisionsOperations"; export interface IRevisionsSessionOperations { getFor(id: string): Promise; getFor(id: string, options: SessionRevisionsOptions): Promise; getMetadataFor(id: string): Promise; getMetadataFor(id: string, options: SessionRevisionsMetadataOptions): Promise; get(id: string, date: Date): Promise; get(id: string, date: Date, documentType: DocumentType): Promise; get(changeVector: string): Promise; get(changeVector: string, documentType: DocumentType): Promise; get(changeVectors: string[]): Promise>; get(changeVectors: string[], documentType: DocumentType): Promise>; forceRevisionCreationFor(entity: T): void; forceRevisionCreationFor(entity: T, strategy: ForceRevisionStrategy): void; forceRevisionCreationFor(id: string): any; forceRevisionCreationFor(id: string, strategy: ForceRevisionStrategy): void; getCountFor(id: string): Promise; lazily: ILazyRevisionsOperations; } export interface SessionRevisionsOptions { start?: number; pageSize?: number; documentType?: DocumentType; } export interface SessionRevisionsMetadataOptions { start?: number; pageSize?: number; }