import { BlockchainEvent } from '../../BlockchainEvent/BlockchainEvent';
import { BlockchainEventEmitter } from './BlockchainEventEmitter';
export declare abstract class AbstractEventService<EventType> {
    protected blockchainEventEmitter: BlockchainEventEmitter;
    protected readonly eventName: string;
    protected constructor(blockchainEventEmitter: BlockchainEventEmitter, eventName: string);
    get latestBlockNumber(): number;
    get chainId(): number;
    intervalClear(): void;
    private processEventsPage;
    protected abstract acceptEvent(event: EventType, blockNumber: number, txHash?: string, isBlocked?: boolean): boolean | Promise<boolean>;
    protected abstract mapEvent(event: BlockchainEvent): EventType;
    protected abstract afterEventsAccepted(eventsCount: number): Promise<void>;
}
