import type { HitLimitOptions } from '@joint-ops/hitlimit-types'; import { checkLimit } from './core/limiter.js'; export type { HitLimitOptions, HitLimitInfo, HitLimitResult, HitLimitStore, StoreResult, TierConfig, HeadersConfig, ResolvedConfig, KeyGenerator, TierResolver, SkipFunction, StoreErrorHandler, ResponseFormatter, ResponseConfig, BanConfig, GroupIdResolver } from '@joint-ops/hitlimit-types'; export { DEFAULT_LIMIT, DEFAULT_WINDOW, DEFAULT_WINDOW_MS, DEFAULT_MESSAGE } from '@joint-ops/hitlimit-types'; export { memoryStore } from './stores/memory.js'; export { checkLimit }; export interface BunHitLimitOptions extends HitLimitOptions { /** * @deprecated Use `store: sqliteStore({ path })` instead. * * Starting with v1.1.0, the default store is Memory for 15.7x better performance. * If you need SQLite persistence: * * ```typescript * import { sqliteStore } from '@joint-ops/hitlimit-bun/stores/sqlite' * hitlimit({ store: sqliteStore({ path: './db.sqlite' }) }, handler) * ``` */ sqlitePath?: string; } type BunServer = { requestIP(req: Request): { address: string; } | null; }; type FetchHandler = (req: Request, server: BunServer) => Response | Promise; export declare function hitlimit(options: BunHitLimitOptions, handler: FetchHandler): (req: Request, server: BunServer) => Response | Promise; export interface HitLimiter { check(req: Request, server: BunServer): Response | null | Promise; reset(key: string): Promise | void; } export declare function createHitLimit(options?: BunHitLimitOptions): HitLimiter; //# sourceMappingURL=index.d.ts.map