import { EventEmitter } from 'events';
import { EventMappings, EventStoreOptions, EventStoreWrapper, EventStream, EventStreamType, EventType, Query, SnapshotType, StorableEvent } from '@nestjs-cqrs-eventsourcing/core';
export declare class Eventstore extends EventEmitter implements EventStoreWrapper {
    private readonly options;
    eventMappings: Record<string, string>;
    private publisher;
    private dispatcher;
    private store;
    constructor(options: EventStoreOptions);
    useEventPublisher(fn: (e: StorableEvent) => Promise<void>): this;
    defineEventMappings(mappings: EventMappings): this;
    init(): Promise<void>;
    streamEvents(query: Query | string | number, skip: number, limit: number): Promise<EventStreamType>;
    streamEventsSince(commitStamp: Date, skip: number, limit: number): Promise<EventStreamType>;
    streamEventsByRevision(query: Query | string, revMin: number, revMax: number): Promise<EventStreamType>;
    getEvents(query: Query | string, skip?: number, limit?: number): Promise<EventType[]>;
    countEvents(query: Query | string): Promise<number>;
    getEvent(index: number): Promise<EventType | null>;
    getEventsSince(commitStamp: Date, skip?: number, limit?: number): Promise<EventType[]>;
    getEventsByRevision(query: Query | string, revMin?: number, revMax?: number): Promise<EventType[]>;
    getEventStream(query: Query | string, revMin?: number, revMax?: number): Promise<EventStream>;
    getFromSnapshot(query: Query | string, revMax?: number): Promise<[SnapshotType | null, EventStream]>;
    createSnapshot(obj: SnapshotType & {
        revision: number | string;
    }): Promise<void>;
    commit(eventStream: EventStreamType): Promise<void>;
    getUndispatchedEvents(query: Query | string): Promise<EventType[] | null>;
    getLastEvent(query: Query | string): Promise<EventType | null>;
    getLastEventAsStream(query: Query | string): Promise<EventStream>;
    setEventToDispatched(evtOrId: {
        id: number;
    } | number): Promise<void>;
    getNewId(): string;
    createSequence(name: string, startValue: number): Promise<void>;
}
