export interface TokenBucketCalculatorOption {
    bucketSize: number;
    fillIntervalUnit?: 'ms' | 'sec' | 'min' | 'hr' | 'day';
    fillAmount: number;
    startBucketFirstFill?: boolean;
}
export declare class TokenBucketCalculator {
    bucketSize: number;
    fillIntervalMSec: number;
    fillAmount: number;
    content: number;
    lastFillMSec: number;
    isRunningRemovingTokensTask: Promise<number> | undefined;
    constructor({ bucketSize, fillAmount, fillIntervalUnit, startBucketFirstFill, }: TokenBucketCalculatorOption);
    private calcFillIntervalMSec;
    changeFillAmount(fillAmount: number, fillIntervalUnit?: 'ms' | 'sec' | 'min' | 'hr' | 'day'): void;
    removeTokens(tokens: number): Promise<number>;
    removeTokensTask(tokens: number): Promise<number>;
    calcTimeForRemovingTokens(tokens: number): number;
    private fillTokens;
    private setLastFillMSec;
    private addContent;
    private subContent;
}
//# sourceMappingURL=index.d.ts.map