@akomalabs/kemono
Version:
A production-grade TypeScript API wrapper for the Kemono/Coomer platforms
30 lines (29 loc) • 954 B
TypeScript
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;