/// <reference types="node" />
import { EventEmitter } from 'events';
export interface RateOptions {
    queueId?: string;
    delayBefore?: number;
    delayAfter?: number;
    uniqueKey?: string;
}
export declare class RateManager extends EventEmitter {
    private counter;
    emit(event: 'error', error: string): boolean;
    emit(event: never, ...args: never[]): never;
    on(event: 'error', listener: (error: string) => void): this;
    on(event: never, listener: never): never;
    private functionQueueMap;
    private runningMap;
    getQueueLength(queueId: string): number;
    exec<T>(func: () => T, options?: RateOptions): Promise<T>;
    private execNext;
}
//# sourceMappingURL=rate-manager.d.ts.map