import { Identity } from 'ts-eventsourcing/ValueObject/Identity'; import { ProjectorGatewayInterface } from '../../ReadModel/ProjectorGatewayInterface'; import { ReadModelAction, ReadModelMetadata } from '../../ReadModel/ReadModelAction'; export interface ProjectorGatewayFactory< T, Id extends Identity = Identity, Metadata extends ReadModelMetadata = ReadModelMetadata, Action extends ReadModelAction = ReadModelAction> { open(options: T): ProjectorGatewayInterface; get(options: T): ProjectorGatewayInterface; close(options: T): void; }