import type { Awaitable } from '../../common';
export type WorkerHeartbeaterMessages = SendHeartbeat;
export type CreateHeartbeaterMessage<T extends string, D extends object = object> = {
    type: T;
} & D;
export type SendHeartbeat = CreateHeartbeaterMessage<'HEARTBEAT'>;
export declare class Heartbeater {
    sendMethod: (workerId: number, data: WorkerHeartbeaterMessages) => Awaitable<void>;
    interval: number;
    store: Map<number, {
        ack: boolean;
        interval: NodeJS.Timeout;
    }>;
    constructor(sendMethod: (workerId: number, data: WorkerHeartbeaterMessages) => Awaitable<void>, interval: number);
    register(workerId: number, recreate: (workerId: number) => Awaitable<void>): void;
    acknowledge(workerId: number): void;
}
