import { Provider } from '@loopback/core'; import { Getter } from '@loopback/repository'; import { RequestContext, Response } from '@loopback/rest'; import { RateLimitFactoryService } from '../services'; import { PossibleRateLimiter, RateLimitAction, RateLimitConfig, RateLimitMetadata, RateLimitResults, RateLimitStoreSource } from '../types'; export declare class RatelimitActionProvider implements Provider { private readonly getStoreSource; private readonly getMetadata; private readonly rateLimiterFactory; private readonly setRateLimitResults; private readonly config?; constructor(getStoreSource: Getter, getMetadata: Getter, rateLimiterFactory: RateLimitFactoryService, setRateLimitResults: (res: RateLimitResults) => void, config?: RateLimitConfig | undefined); value(): RateLimitAction; action(context: RequestContext): Promise; doRateLimit(context: RequestContext): Promise; sendHeaders(response: Response, limiter: PossibleRateLimiter, results: RateLimitResults, legacy: boolean): Promise; }