UNPKG

@akomalabs/kemono

Version:

A production-grade TypeScript API wrapper for the Kemono/Coomer platforms

30 lines (29 loc) 954 B
import type { KemonoConfig } from '../types/config'; import type { Logger } from './logger'; /** * Rate limiter interface */ export interface RateLimiter { checkLimit(): Promise<void>; incrementCount(): Promise<void>; } /** * In-memory rate limiter implementation using sliding window */ export declare class MemoryRateLimiter implements RateLimiter { private requests; private readonly maxRequests; private readonly windowMs; private readonly logger; constructor(config: Required<KemonoConfig>['rateLimit'], logger: Logger); private cleanup; checkLimit(): Promise<void>; incrementCount(): Promise<void>; } /** * Creates a rate limiter instance based on the configuration * @param config Rate limit configuration from KemonoConfig * @param logger Logger instance * @returns RateLimiter instance */ export declare function createRateLimiter(config: KemonoConfig['rateLimit'], logger: Logger): RateLimiter;