import { MessageLike, PubSubLike } from '../../contracts/pubsub'; import { FuQuOptions } from '../fuqu-factory'; import { ReplaceAttributes } from './helpers'; export type FuQuSubscriberOptions = { reconnectAfterMillis?: number; parseJson?: boolean; }; export type FuQuMessage = ReplaceAttributes void; }> & { jsonData: any; }; export type MessageHandler = (message: FuQuMessage) => void | Promise; export declare class Subscriber { private createPubSubClient; private subscriptionName; private handler; private options; private subscription?; private messageInProcessingCount; private timeout; private reconnectTimeoutMillis; constructor(createPubSubClient: () => PubSubLike, subscriptionName: string, handler: MessageHandler, options: FuQuOptions); private setup; private hookHandler; private patchMessage; private messageIn; private messageOut; private rescheduleTimer; private refresh; clear(): void; private clearTimeout; private isDry; }