/// <reference types="node" />
import { TConsumerHeartbeat } from '../../../types';
import { RedisClient, Ticker } from 'redis-smq-common';
import { EventEmitter } from 'events';
import { Consumer } from './consumer';
import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
export declare class ConsumerHeartbeat extends EventEmitter {
    protected static readonly heartbeatTTL: number;
    protected redisClient: RedisClient;
    protected ticker: Ticker;
    protected keyHeartbeats: string;
    protected keyHeartbeatTimestamps: string;
    protected consumer: Consumer;
    constructor(consumer: Consumer, redisClient: RedisClient);
    protected getPayload(): TConsumerHeartbeat;
    protected onTick(): void;
    quit(cb: ICallback<void>): void;
    protected static isExpiredHeartbeat(heartbeat: TConsumerHeartbeat): boolean;
    static getConsumersHeartbeats(redisClient: RedisClient, consumerIds: string[], cb: ICallback<Record<string, TConsumerHeartbeat | false>>): void;
    static getExpiredHeartbeatIds(redisClient: RedisClient, offset: number, count: number, cb: ICallback<string[]>): void;
    static handleExpiredHeartbeatId(consumerId: string | string[], multi: IRedisClientMulti): void;
}
