/* eslint-disable @typescript-eslint/no-explicit-any */ /** * Upstash SDK 可选依赖类型声明(audit-P1-6) * * 这两个包通过动态 import 在运行时加载,仅在 `RATE_LIMIT_DRIVER=redis` * 时才需要安装。默认内存模式下无需安装。 * * 安装命令: * npm install @upstash/ratelimit @upstash/redis * * 安装后这两个包自带的类型声明将覆盖此处的 any 声明, * 提供完整的类型检查。 */ declare module "@upstash/ratelimit" { export class Ratelimit { constructor(config: { redis: any limiter: any analytics?: boolean prefix?: string }) limit( identifier: string, ): Promise<{ success: boolean limit: number remaining: number reset: number pending: Promise }> reset(identifier: string): Promise static slidingWindow( max: number, window: string, ): { type: "sliding-window"; max: number; window: string } static fixedWindow( max: number, window: string, ): { type: "fixed-window"; max: number; window: string } static tokenBucket( max: number, window: string, refillRate: number, ): { type: "token-bucket"; max: number; window: string; refillRate: number } } } declare module "@upstash/redis" { export class Redis { constructor(config: { url: string token: string automaticDeserialization?: boolean responseEncoding?: "base64" | "none" retry?: { retries: number backoff: (retryCount: number) => number } }) get(key: string): Promise set(key: string, value: string): Promise<"OK"> del(...keys: string[]): Promise incr(key: string): Promise expire(key: string, seconds: number): Promise pexpire(key: string, milliseconds: number): Promise [key: string]: any } }