import type { L0Options, L0Result, L0Interceptor } from "../types/l0"; export interface InterceptorContext { name: string; phase: "before" | "after" | "error"; timestamp: number; duration?: number; } export declare class InterceptorManager { private interceptors; private contexts; constructor(interceptors?: L0Interceptor[]); executeBefore(options: L0Options): Promise; executeAfter(result: L0Result): Promise; executeError(error: Error, options: L0Options): Promise; getContexts(): InterceptorContext[]; reset(): void; } export declare function loggingInterceptor(logger?: { info: (message: string, data?: any) => void; error: (message: string, data?: any) => void; }): L0Interceptor; export declare function metadataInterceptor(metadata: Record): L0Interceptor; export declare function authInterceptor(getAuth: () => Promise> | Record): L0Interceptor; export declare function timingInterceptor(): L0Interceptor; export declare function validationInterceptor(validate: (content: string) => boolean | Promise, onInvalid?: (content: string) => void): L0Interceptor; export declare function rateLimitInterceptor(maxRequests: number, windowMs: number): L0Interceptor; export declare function cachingInterceptor(cache: Map, getCacheKey: (options: L0Options) => string): L0Interceptor; export declare function transformInterceptor(transform: (content: string) => string | Promise): L0Interceptor; export declare function analyticsInterceptor(track: (event: string, data: any) => void | Promise): L0Interceptor; export declare function createInterceptorManager(interceptors?: L0Interceptor[]): InterceptorManager; //# sourceMappingURL=interceptors.d.ts.map