import { EthereumAddress } from '@streamr/utils';
import { EventFragment } from 'ethers';
import { StrictStreamrClientConfig } from '../Config';
import { RpcProviderSource } from '../RpcProviderSource';
export interface EventListenerDefinition {
    onEvent: (...args: any[]) => void;
    contractInterfaceFragment: EventFragment;
    contractAddress: EthereumAddress;
}
export declare const POLLS_SINCE_LAST_FROM_BLOCK_UPDATE_THRESHOLD = 30;
export declare class ChainEventPoller {
    private listeners;
    private providers;
    private pollInterval;
    private abortController?;
    constructor(rpcProviderSource: RpcProviderSource, config: Pick<StrictStreamrClientConfig, 'contracts'>);
    on(definition: EventListenerDefinition): void;
    off(definition: EventListenerDefinition): void;
    private start;
}
