import { Request, Response, NextFunction } from "express";
import { RateLimiterConfig, ExpressRateLimiter, RateLimitResult } from "../interfaces/rate-limiter.interface";
export declare class ExpressRateLimiterMiddleware implements ExpressRateLimiter {
    private service;
    constructor(config: RateLimiterConfig);
    /**
     * Check if a request is allowed based on rate limiting rules
     */
    checkLimit(req: Request): Promise<RateLimitResult>;
    /**
     * Express middleware function
     */
    middleware(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
    /**
     * Reset rate limit for a specific key
     */
    resetLimit(key: string): Promise<void>;
    /**
     * Get current rate limit info for a key
     */
    getLimitInfo(key: string): Promise<import("../interfaces/rate-limiter.interface").RateLimitInfo | null>;
    /**
     * Close the service connection
     */
    close(): Promise<void>;
    /**
     * Get the current configuration
     */
    getConfig(): Required<RateLimiterConfig>;
}
