/** * Abstract base for storage-backed rate limiters. Holds the `points` / * `duration` / `blockDuration` / `execEvenly` configuration that any * concrete limiter shares. Subclasses (`MemoryLimiter`, future Redis * backend) implement `consume()` and friends. * * Ported to TypeScript from upstream RateLimiterAbstract. See * `THIRDPARTY-LICENSES.md` for attribution. */ import type { LimiterOptions, LimiterConsumeOptions, IRateLimiterRes } from './types'; export declare abstract class AbstractLimiter { protected _points: number; protected _duration: number; protected _blockDuration: number; protected _execEvenly: boolean; protected _execEvenlyMinDelayMs: number; protected _keyPrefix: string; constructor(opts: LimiterOptions); get points(): number; get duration(): number; get msDuration(): number; get blockDuration(): number; get msBlockDuration(): number; get execEvenly(): boolean; get execEvenlyMinDelayMs(): number; get keyPrefix(): string; protected _getKeySecDuration(options?: LimiterConsumeOptions): number; protected _getKey(key: string): string; abstract consume(key: string, pointsToConsume?: number, options?: LimiterConsumeOptions): Promise; abstract penalty(key: string, points?: number, options?: LimiterConsumeOptions): Promise; abstract reward(key: string, points?: number, options?: LimiterConsumeOptions): Promise; abstract block(key: string, secDuration: number): Promise; abstract get(key: string): Promise; abstract delete(key: string): Promise; } //# sourceMappingURL=abstract.d.ts.map