import type { RateLimitContext, RateLimiterConfig, RateLimitResult, AlgorithmType, RateLimitRule, MultiLayerRateLimitResult } from "../types/index.js"; import type { Store } from "../store/types.js"; import { CompiledPolicies } from "../policies/compiler.js"; export declare class Engine { private store; private config; private compiledPolicies; private pathCache; constructor(store: Store, config: RateLimiterConfig, compiledPolicies: CompiledPolicies); private normalizePath; executeLayers(ctx: RateLimitContext, layers: RateLimitRule[]): Promise; check(ctx: RateLimitContext): Promise<{ result: RateLimitResult; key: string; algorithm: AlgorithmType; limit: number; }>; private innerCheck; private resolveOptions; private createSkippedResult; private handleError; }