import type { Redis } from 'ioredis'; export declare class Counter { private readonly redis; private readonly groupKey; constructor(redis: Redis, groupKey: string); incrOrSet(field: string, num: number, initialNum: number): Promise; incrOrSetLazyload(field: string, num: number, initialNumGetter: () => Promise): Promise; incr(field: string, num: number): Promise; getOne(field: string, defaultVal?: number): Promise; getAll(): Promise>; set(field: string, num: number): Promise; exists(field: string): Promise; delete(field: string): Promise; mergeTo(records: T[], counters: Record, destField: string, idGetterFn: (record: T) => string, defaultCount?: number): void; getAndMergeTo(records: T[], destField: string, idGetterFn: (record: T) => string, defaultCount?: number): Promise; }