import { IRateLimitStore, RateLimitInfo, RateLimitStats } from '../types/rateLimiter';
export declare class PostgresStore implements IRateLimitStore {
    private client;
    private windowMs;
    constructor(options: {
        connectionString: string;
        windowMs: number;
    });
    private connect;
    incr(key: string): Promise<RateLimitInfo>;
    get(key: string): Promise<{
        count: number;
        resetTime: number;
    } | undefined>;
    reset(key: string): Promise<void>;
    recordStat(route: string): Promise<void>;
    getStats(): Promise<RateLimitStats>;
    ban(key: string, seconds: number, reason: string): Promise<void>;
    isBanned(key: string): Promise<{
        banned: boolean;
        banExpiresAt?: Date;
        reason?: string;
    }>;
    getBanned(): Promise<{
        [key: string]: {
            banExpiresAt: Date;
            reason: string;
        };
    }>;
    unban(key: string): Promise<void>;
}
