/** * @module RateLimiter */ import { type IReadableContext } from "../../../../execution-context/contracts/_module.js"; import { type IRateLimiterAdapter } from "../../../../rate-limiter/contracts/_module.js"; import { RateLimiter, type ISerializedRateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-factory/rate-limiter.js"; import { type ISerdeTransformer } from "../../../../serde/contracts/_module.js"; import { type ErrorPolicy, type OneOrMore, type WaitUntil } from "../../../../utilities/_module.js"; /** * @internal */ export type RateLimiterSerdeTransformerSettings = { adapter: IRateLimiterAdapter; errorPolicy: ErrorPolicy; onlyError: boolean; serdeTransformerName: string; enableAsyncTracking: boolean; waitUntil: WaitUntil; context: IReadableContext; }; /** * @internal */ export declare class RateLimiterSerdeTransformer implements ISerdeTransformer { private readonly adapter; private readonly errorPolicy; private readonly serdeTransformerName; private readonly enableAsyncTracking; private readonly onlyError; private readonly waitUntil; private readonly context; constructor(settings: RateLimiterSerdeTransformerSettings); get name(): OneOrMore; isApplicable(value: unknown): value is RateLimiter; deserialize(serializedValue: ISerializedRateLimiter): RateLimiter; serialize(deserializedValue: RateLimiter): ISerializedRateLimiter; }