import { Event, Provider, Ext, Handler, EventMeta, HandlerBookmark, HandlerBody, HandlerHooks, DomainHandlerOpts } from './types';
type Options<E extends Event> = {
    stream: string | string[];
    bookmark: HandlerBookmark;
    provider: Provider<E> | Promise<Provider<E>>;
    hooks?: HandlerHooks;
} & DomainHandlerOpts;
export declare class EventHandler<E extends Event> implements Handler<E> {
    name: string;
    private bookmark;
    private streams;
    private provider;
    private position;
    private running;
    private tailStream;
    private alwaysTailStream;
    private continueOnError;
    private __handlers;
    private hooks;
    constructor(opts: Options<E>);
    handle: <T extends E["type"]>(type: T, cb: (aggregateId: string, event: Ext<E, T>, meta: EventMeta) => Promise<void>) => void;
    handlers: (body: HandlerBody<E>) => void;
    start: () => void;
    stop: () => void;
    reset: () => void;
    runOnce: (runningCount?: number) => Promise<number>;
    getPosition: () => Promise<any>;
    setPosition: () => Promise<void>;
    run: () => Promise<void>;
}
export {};
