import { Entity } from './entity'; import { EventDispatcher, EventStore } from '../event'; import { Modifiers } from '../'; export declare class ChainInterceptorPromise extends Promise { private readonly promise; private readonly afterChain?; constructor(promise: Promise, afterChain?: Function); then(a: any): ChainInterceptorPromise; catch(a: any): ChainInterceptorPromise; } export interface EntityRepository { load(construct: new (...arg: any[]) => T, id: string, ...additional: any[]): Promise; } export declare const loadWithInstance: (id: string, entity: Entity, eventDispatcher: EventDispatcher, eventStore: EventStore) => Promise; export declare class BaseEntityRepository implements EntityRepository { private readonly eventDispatcher; private readonly eventStore; constructor(eventDispatcher: EventDispatcher, eventStore: EventStore); load(construct: { new (...arg: any[]): any; }, id: string, ...additional: any[]): Promise; } export declare class EntityRepositoryWithModifiers implements EntityRepository { private readonly entityRepository; private readonly modifiers; constructor(entityRepository: EntityRepository, modifiers: Modifiers); load(construct: new (...arg: any[]) => T, id: string, ...additional: any[]): Promise; }