import { S as StorageAdapter } from '../types-Xk5M26Sz.js'; interface ChallengeContext { request: Request; challengeHex: string; issuedAt: number; steps: number; maxAgeMs: number; score: number; challengeHeader: string; solutionHeader: string; } type ChallengeRenderer = (context: ChallengeContext) => string; interface ParsedChallenge { challengeHex: string; issuedAt: number; expired: boolean; valid: boolean; } declare function parseEncodedChallenge(encoded: string, maxAgeMs: number, nowMs?: number): ParsedChallenge; declare function issueChallengeValue(bytes?: number): { encoded: string; challengeHex: string; issuedAt: number; }; declare function defaultChallengeRenderer(context: ChallengeContext): string; interface ChallengePage { body: string; contentType: string; } declare function renderChallengePage(context: ChallengeContext, renderer?: ChallengeRenderer): ChallengePage; interface FingerprintResult { score: number; signals: string[]; } declare function fingerprintRequest(request: Request): FingerprintResult; interface BotRules { block?: RegExp[]; allow?: RegExp[]; } type RuleDecision = "allow" | "block" | "neutral"; declare function evaluateRules(userAgent: string, rules?: BotRules): RuleDecision; declare class VDF { static compute(challengeHex: string, steps: number): Promise; static verify(challengeHex: string, steps: number, resultHex: string): Promise; } declare function createVdfChallenge(bytes?: number): string; type BotMode = "detect" | "block" | "challenge"; interface BotVdfConfig { enabled?: boolean; steps?: number; maxAgeMs?: number; challengeHeader?: string; solutionHeader?: string; } interface BotChallengeConfig { renderer?: ChallengeRenderer; } interface BotGuardConfig { mode?: BotMode; rules?: BotRules; threshold?: number; vdf?: BotVdfConfig; challenge?: BotChallengeConfig; storage?: StorageAdapter; } interface BotGuardResult { success: boolean; status: 200 | 403; reason: "passed" | "allowlisted_ua" | "blocked_ua" | "detected_suspicious" | "blocked_suspicious" | "vdf_challenge_required" | "vdf_failed" | "vdf_passed" | "challenge_required" | "challenge_failed" | "challenge_passed"; score: number; headers: Headers; body?: string; contentType?: string; meta: { signals: string[]; threshold: number; }; } declare function botGuard(config?: BotGuardConfig): { check(request: Request): Promise; }; export { type BotChallengeConfig, type BotGuardConfig, type BotGuardResult, type BotMode, type BotRules, type BotVdfConfig, type ChallengeRenderer, VDF, botGuard, createVdfChallenge, defaultChallengeRenderer, evaluateRules, fingerprintRequest, issueChallengeValue, parseEncodedChallenge, renderChallengePage };