import { CanActivate, ExecutionContext } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; import { ThrottlerModuleOptions, ThrottlerOptions } from './throttler-module-options.interface'; import { ThrottlerStorage } from './throttler-storage.interface'; import { ThrottlerLimitDetail, ThrottlerRequest } from './throttler.guard.interface'; export declare class ThrottlerGuard implements CanActivate { protected readonly options: ThrottlerModuleOptions; protected readonly storageService: ThrottlerStorage; protected readonly reflector: Reflector; protected headerPrefix: string; protected errorMessage: string; protected throttlers: Array; protected commonOptions: Pick; constructor(options: ThrottlerModuleOptions, storageService: ThrottlerStorage, reflector: Reflector); onModuleInit(): Promise; canActivate(context: ExecutionContext): Promise; protected shouldSkip(_context: ExecutionContext): Promise; protected handleRequest(requestProps: ThrottlerRequest): Promise; protected getTracker(req: Record): Promise; protected getRequestResponse(context: ExecutionContext): { req: Record; res: Record; }; protected generateKey(context: ExecutionContext, suffix: string, name: string): string; protected throwThrottlingException(context: ExecutionContext, throttlerLimitDetail: ThrottlerLimitDetail): Promise; protected getErrorMessage(context: ExecutionContext, throttlerLimitDetail: ThrottlerLimitDetail): Promise; private resolveValue; }