namespace NEventStore.Domain.Persistence { using System; using System.Collections.Generic; public interface IRepository : IDisposable { TAggregate GetById(Guid id) where TAggregate : class, IAggregate; TAggregate GetById(Guid id, int version) where TAggregate : class, IAggregate; TAggregate GetById(string bucketId, Guid id) where TAggregate : class, IAggregate; TAggregate GetById(string bucketId, Guid id, int version) where TAggregate : class, IAggregate; void Save(IAggregate aggregate, Guid commitId, Action> updateHeaders); void Save(string bucketId, IAggregate aggregate, Guid commitId, Action> updateHeaders); } }