import winston from 'winston';
export interface QuotaJob {
    ts?: number;
    done: boolean;
    func: () => Promise<void>;
    skipCounter?: boolean;
}
export declare class QuotaLimiter {
    private readonly logger;
    private jobs;
    private running;
    private counter;
    private initialLimit;
    private currentLimit;
    private oldCounter;
    private saveHandler;
    private eventBus;
    constructor(initialJobs: QuotaJob[] | undefined, logger: winston.Logger, eventBus?: any);
    setInitialLimit(queries: any, seconds: any): void;
    slowdown(): void;
    speedup(): void;
    setLimit(queries: any, seconds: any): boolean;
    addJob(func: any): void;
    handleQueue(): void;
    removeOlderThan(minTime: any): void;
    calculateAvailableQuota(now: any): number;
    setSaveHandler(handler: (jobs: QuotaJob[]) => void): void;
}
//# sourceMappingURL=QuotaLimiter.d.ts.map