UNPKG

strogger

Version:

📊 A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations

56 lines • 1.49 kB
import type { LoggerConfig } from "../types"; export interface RateLimiterState { tokens: number; lastRefill: number; maxTokens: number; refillRate: number; } export interface SamplingState { totalLogs: number; sampledLogs: number; } /** * Creates a rate limiter using token bucket algorithm */ export declare const createRateLimiter: (maxLogsPerSecond: number, burstSize: number) => { tryConsume: (tokens?: number) => boolean; getState: () => { tokens: number; lastRefill: number; maxTokens: number; refillRate: number; }; }; /** * Creates a sampling function that respects the sampling rate */ export declare const createSampler: (samplingRate: number) => { shouldSample: () => boolean; getStats: () => { totalLogs: number; sampledLogs: number; samplingRate: number; configuredRate: number; }; }; /** * Creates a combined sampling and rate limiting function */ export declare const createLogFilter: (config: LoggerConfig) => { shouldLog: () => boolean; getStats: () => { rateLimit: { tokens: number; lastRefill: number; maxTokens: number; refillRate: number; } | undefined; sampling: { totalLogs: number; sampledLogs: number; samplingRate: number; configuredRate: number; } | undefined; }; }; //# sourceMappingURL=sampling.d.ts.map