import { IEntityRepository } from "./repository"; export interface IReplicasConfiguration { configureReplica>(name: string, options: ReplicaOptions, repository: TRepository): void; getReplica(name: string): ReplicaConfiguration; getReplicas(): ReplicaConfiguration[]; } export declare enum ReplicationMode { Sync = 0, Async = 1 } export type ReplicaOptions = { mode: ReplicationMode; enabled?: boolean; }; export type ReplicaConfiguration = { name: string; options: ReplicaOptions; repository: IEntityRepository; }; export interface IEntityReplicaDeleteManager { deleteReplicas(entityId: TEntityId): Promise; } export interface IEntityReplicaSyncManager { syncReplicas(entity: TEntity): Promise; }