import { EventHandler } from './event-handler';
import { HandlerBookmark, Provider, StreamsHandler, Event, HandlerBody, DomainHandlerOpts } from './types';
type Options<Body extends {
    [key: string]: Event;
}> = {
    bookmark: HandlerBookmark;
    streams: Array<keyof Body>;
    provider: Provider<Event> | Promise<Provider<Event>>;
} & DomainHandlerOpts;
export declare function createHandler<Body extends {
    [key: string]: Event;
}>(options: Options<Body>): {
    handle: StreamsHandler<Body>;
    handleStream: <S extends keyof Body>(stream: S, handlers: HandlerBody<Body[S]>) => void;
    start: () => void;
    stop: () => void;
    runOnce: (runningCount?: number) => Promise<number>;
    run: () => Promise<void>;
    setPosition: () => Promise<void>;
    getPosition: () => Promise<any>;
    reset: () => void;
    __handler: EventHandler<Event>;
    name: string;
};
export {};
