import { ClusterOptions, RedisOptions } from 'ioredis'; import { IRateLimiterOptions, IRateLimiterRedisOptions } from 'rate-limiter-flexible'; type RedisConfig = { url?: string; options?: RedisOptions | ClusterOptions; } & (IRateLimiterRedisOptions | IRateLimiterOptions); export declare class ApolloServerRateLimiter { private static self; private options; private withRedis; private redisClient; private isReady; private remainSettings; private readonly REDIS_URL; static init(options?: RedisConfig): ApolloServerRateLimiter; static get instance(): ApolloServerRateLimiter; term(): Promise; getSchema(): Promise<{ rateLimitDirectiveTransformer: (schema: import("graphql").GraphQLSchema) => import("graphql").GraphQLSchema; rateLimitDirectiveTypeDefs: import("graphql").DocumentNode; }>; private constructor(); private finalize; plugin(): { serverWillStart(): Promise<{ serverWillStop(): Promise; }>; }; } export {};