import type { SupportedNetwork } from '@ceramicnetwork/anchor-utils';
import type { Provider } from '@ethersproject/providers';
import { type Observable, type OperatorFunction, type RetryConfig } from 'rxjs';
import { type BlockAndBlockProofs } from './loader.js';
export declare type BlockEvent = BlockAndBlockProofs & {
    reorganized: false;
};
export declare type ReorganizedBlockEvent = BlockAndBlockProofs & {
    reorganized: true;
    expectedParentHash: string;
};
export declare type BlockProofsListenerEvent = BlockEvent | ReorganizedBlockEvent;
export declare type ListenerParams = {
    provider: Provider;
    chainId: SupportedNetwork;
    confirmations: number;
    expectedParentHash?: string;
    retryConfig?: RetryConfig;
};
export declare function createContinuousBlocksListener(provider: Provider, confirmations?: number): Observable<Array<number>>;
export declare function mapProcessBlockProofs(expectedParentHash?: string): OperatorFunction<BlockAndBlockProofs, BlockProofsListenerEvent>;
export declare function createBlockProofsListener({ chainId, confirmations, expectedParentHash, provider, retryConfig, }: ListenerParams): Observable<BlockProofsListenerEvent>;
//# sourceMappingURL=listener.d.ts.map