/**
 * @module RateLimiter
 */
import { type BackoffPolicy } from "../../../../backoff-policies/_module.js";
import { type AllRateLimiterState, type RateLimiterPolicy } from "../../../../rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-policy.js";
/**
 * @internal
 */
export declare class RateLimiterStateManager<TMetrics = unknown> {
    private readonly rateLimiterPolicy;
    private readonly backoffPolicy;
    constructor(rateLimiterPolicy: RateLimiterPolicy<TMetrics>, backoffPolicy: BackoffPolicy);
    updateState: (limit: number, currentDate: Date) => (currentState: AllRateLimiterState<TMetrics>) => AllRateLimiterState<TMetrics>;
    track: (currentDate: Date) => (currentState: AllRateLimiterState<TMetrics>) => AllRateLimiterState<TMetrics>;
}
