import { BlockResponse, InternalOperationResult } from '@taquito/rpc';
import { OperatorFunction } from 'rxjs';
import { Context } from '../context';
import { Filter, EventFilter, SubscribeProvider, Subscription, OperationContent } from './interface';
export interface PollingSubscribeProviderConfig {
    pollingIntervalMilliseconds?: number;
    shouldObservableSubscriptionRetry: boolean;
    observableSubscriptionRetryFunction: OperatorFunction<any, any>;
}
export declare const defaultConfigStreamer: PollingSubscribeProviderConfig;
export declare class PollingSubscribeProvider implements SubscribeProvider {
    private context;
    private _config$;
    private timer$;
    private newBlock$;
    constructor(context: Context, config?: Partial<PollingSubscribeProviderConfig>);
    get config(): PollingSubscribeProviderConfig;
    private getConfirmationPollingInterval;
    subscribeBlock(_filter: 'head'): Subscription<BlockResponse>;
    subscribe(_filter: 'head'): Subscription<string>;
    subscribeOperation(filter: Filter): Subscription<OperationContent>;
    subscribeEvent(eventFilter?: EventFilter): Subscription<InternalOperationResult>;
}
