export interface RateLimiterLimits { limit?: number; windowMs?: number; } export interface BodyKeyedRateLimiterConfig extends RateLimiterLimits { source: 'body'; field: string; } export interface UserKeyedRateLimiterConfig extends RateLimiterLimits { source: 'user'; } export type KeyedRateLimiterConfig = BodyKeyedRateLimiterConfig | UserKeyedRateLimiterConfig; export declare const createBodyKeyedRateLimiter: ({ limit, windowMs, field, }: RateLimiterLimits & { field: keyof T & string; }) => BodyKeyedRateLimiterConfig; export declare const createUserKeyedRateLimiter: ({ limit, windowMs, }: RateLimiterLimits) => UserKeyedRateLimiterConfig;