import { IEventHandler, IChainEventKind, IEventSubscriber, IEventProcessor, IChainEventData, CWEvent, IStorageFetcher, IDisconnectedRange, SupportedNetwork } from './interfaces'; export declare abstract class Listener, Processor extends IEventProcessor, Subscriber extends IEventSubscriber, EventKind extends IChainEventKind> { eventHandlers: { [key: string]: { handler: IEventHandler; excludedEvents: EventKind[]; }; }; globalExcludedEvents: EventKind[]; storageFetcher: StorageFetcher; discoverReconnectRange: (chain: string) => Promise; protected _subscriber: Subscriber; protected _processor: Processor; protected _api: Api; protected _subscribed: boolean; protected _lastBlockNumber: number; protected readonly _chain: string; protected readonly _verbose: boolean; protected constructor(network: SupportedNetwork, chain: string, verbose?: boolean); abstract init(): Promise; abstract subscribe(): Promise; unsubscribe(): Promise; protected handleEvent(event: CWEvent): Promise; protected abstract processBlock(block: any): Promise; get chain(): string; get subscribed(): boolean; abstract get options(): any; get lastBlockNumber(): number; }