import * as EventStore from 'node-eventstore-client';
import { Guid, Type } from '@cashfarm/lang';
import { Identity } from '../../domain';
import { EventEnvelope } from '../eventEnvelope';
import { IEventStore } from '../iEventStore';
import { ESAggregateRoot } from '../../eventSourcing/esAggregateRoot';
export declare class GesEventStore implements IEventStore {
    private host;
    private port;
    private settings;
    constructor(host?: string, port?: number, settings?: EventStore.ConnectionSettings);
    save<T extends ESAggregateRoot<Identity<Guid>>>(aggregate: T): Promise<number>;
    getEventsByAggregate(aggregateType: Type, aggregateId: Identity<Guid>): Promise<EventEnvelope[]>;
    private convertToEnvelope(event);
    private saveEvents(aggtType, aggtId, events, expectedVersion);
    private getEvents(streamName, start, limit?);
    private withConn<T>(f);
    private connect();
    private getStreamName(type, id);
}
