/** * Rate limiting plugin for NestJS RedisX. * Provides multiple algorithms: fixed-window, sliding-window, token-bucket. */ import { DynamicModule, ForwardReference, Provider, Type } from '@nestjs/common'; import { IRedisXPlugin, IPluginAsyncOptions } from '@nestjs-redisx/core'; import { IRateLimitPluginOptions } from './shared/types'; /** * Rate limiting plugin for NestJS RedisX. * * Provides rate limiting with multiple algorithms: * - Fixed Window * - Sliding Window * - Token Bucket * * @example * ```typescript * @Module({ * imports: [ * RedisModule.forRoot({ * clients: { host: 'localhost', port: 6379 }, * plugins: [ * new RateLimitPlugin({ * defaultAlgorithm: 'sliding-window', * defaultPoints: 100, * defaultDuration: 60, * includeHeaders: true, * }), * ], * }), * ], * }) * export class AppModule {} * ``` */ export declare class RateLimitPlugin implements IRedisXPlugin { private readonly options; readonly name = "rate-limit"; readonly version: string; readonly description = "Rate limiting with fixed-window, sliding-window, and token-bucket algorithms"; private asyncOptions?; constructor(options?: IRateLimitPluginOptions); static registerAsync(asyncOptions: IPluginAsyncOptions): RateLimitPlugin; private static mergeDefaults; getImports(): Array | DynamicModule | ForwardReference>; getProviders(): Provider[]; getExports(): Array; } //# sourceMappingURL=rate-limit.plugin.d.ts.map