/** * Logging utilities for fetch-gate */ import { type Logger, type LoggerOptions } from "pino"; import type { CircuitBreakerResult, CircuitState } from "./types"; /** * Default logger configuration optimized for production use */ export declare const DEFAULT_LOGGER_CONFIG: LoggerOptions; /** * Creates a default logger instance with recommended settings for fetch-gate */ export declare function createDefaultLogger(options?: LoggerOptions): Logger; /** * Creates a no-op logger that doesn't output anything (useful for testing or when logging is disabled) */ export declare function createSilentLogger(): Logger; /** * Logging context for structured logging */ export interface LogContext { requestId?: string; method?: string; url?: string; baseUrl?: string; timeout?: number; circuitBreakerState?: CircuitState; executionTime?: number; [key: string]: any; } /** * Proxy-specific logging methods with structured context */ export declare class ProxyLogger { private logger; constructor(logger: Logger); /** * Log request start */ logRequestStart(req: Request, context?: LogContext): void; /** * Log successful response */ logRequestSuccess(req: Request, res: Response, context?: LogContext): void; /** * Log request error */ logRequestError(req: Request, error: Error, context?: LogContext): void; /** * Log circuit breaker events */ logCircuitBreakerEvent(event: "execution_start" | "execution_success" | "execution_failure" | "state_change", req: Request, result?: CircuitBreakerResult, context?: LogContext): void; /** * Log security validation events */ logSecurityEvent(type: "header_validation" | "query_validation" | "method_validation" | "protocol_validation" | "path_validation", req: Request, details: string, context?: LogContext): void; /** * Log performance metrics */ logPerformanceMetrics(req: Request, metrics: { totalTime: number; circuitBreakerTime?: number; networkTime?: number; cacheHit?: boolean; }, context?: LogContext): void; /** * Log cache operations */ logCacheEvent(event: "hit" | "miss" | "set" | "eviction", key: string, context?: LogContext): void; /** * Log timeout events */ logTimeout(req: Request, timeout: number, context?: LogContext): void; /** * Get the underlying Pino logger for custom logging */ getLogger(): Logger; } /** * Creates a ProxyLogger instance with the given logger */ export declare function createProxyLogger(logger: Logger): ProxyLogger; //# sourceMappingURL=logger.d.ts.map