import { ModuleMetadata, Type } from '@nestjs/common/interfaces'; import { IRateLimiterMongoOptions } from 'rate-limiter-flexible'; import { Provider } from '@nestjs/common'; export declare type RateLimiterType = 'Redis' | 'Memcache' | 'Postgres' | 'MySQL' | 'Memory'; export interface RateLimiterModuleOptions extends Partial { type?: RateLimiterType; pointsConsumed?: number; headers?: boolean; keyGenerator?: (req: any) => string; } export interface RateLimiterOptionsFactory { createRateLimiterOptions(): Promise | RateLimiterModuleOptions; } export interface RateLimiterModuleAsyncOptions extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | RateLimiterModuleOptions; inject?: any[]; extraProviders?: Provider[]; }