interface RevisionHelpers { deletedError: Error; staleError: Error; applyRevisionMetadata< TData extends JsonObject, TVirtual extends JsonObject, TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { deleteAllRevisions< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user?: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; newRevision< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; }, >( instance: TInstance, options?: { date?: string | Date; revId?: string; tags?: string | string[]; user?: RevisionActor; }, ): TInstance; getDeleteAllRevisionsHandler< TData extends JsonObject, TVirtual extends JsonObject, TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { deleteAllRevisions< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user?: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; newRevision< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; }, >( ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>, ): ( this: TInstance, user: RevisionActor, options?: { tags?: string[] }, ) => Promise<VersionedModelInstance<TData, TVirtual>>; getFirstRevisionHandler< TData extends JsonObject, TVirtual extends JsonObject, TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { deleteAllRevisions< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user?: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; newRevision< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; }, >( ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>, ): ( this: TInstance, user: RevisionActor, options?: { date?: Date; tags?: string[] }, ) => Promise<VersionedModelInstance<TData, TVirtual>>; getMultipleNotStaleOrDeletedHandler< TData extends JsonObject, TVirtual extends JsonObject, TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { deleteAllRevisions< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user?: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; newRevision< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; }, >( ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>, ): (idArray: string[]) => unknown; getNewRevisionHandler< TData extends JsonObject, TVirtual extends JsonObject, TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { deleteAllRevisions< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user?: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; newRevision< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; }, >( ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>, ): ( this: TInstance, user: RevisionActor, options?: { tags?: string[] }, ) => Promise<VersionedModelInstance<TData, TVirtual>>; getNotStaleOrDeletedGetHandler< TData extends JsonObject, TVirtual extends JsonObject, TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { deleteAllRevisions< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user?: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; newRevision< TThis extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned...
= VersionedModelInstance< TData, TVirtual, >, >( this: TThis, user: RevisionActor, options?: RevisionMetadata, ): Promise<TThis>; }, >( ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>, ): ( id: string, joinOptions?: JoinOptions, ) => Promise<VersionedModelInstance<TData, TVirtual>>; getSchema(): Record<string, unknown>; registerFieldMappings(ModelClass: ModelConstructorLike): void;}