export type RateLimitResult = {
    allowed: true;
} | {
    allowed: false;
    retryAfterSeconds: number;
};
/**
 * Sliding window rate limiter implementation
 */
export declare class RateLimiter {
    readonly maxItems: number;
    readonly timeToLiveInMS: number;
    private rateLimitedItems;
    constructor(maxItems: number, timeToLiveInMS: number);
    isAllowed(key: string, windowSizeInMS: number, maxRequests: number): RateLimitResult;
}
