import { LogMetadata, PiiRedactionOptions } from '../interfaces/logger.interface'; /** * PII Redactor Utility * * Automatically redacts Personally Identifiable Information (PII) from log messages * and metadata to ensure privacy compliance (GDPR, CCPA, etc.). * * Redaction patterns: * - Emails: `user@example.com` → `u***@***.com` * - IP Addresses: `192.168.1.100` → `192.168.1.***` * - Tokens: `eyJhbGciOiJIUz...` → `[REDACTED_TOKEN]` * - Passwords: Always `[REDACTED]` * - Phone Numbers: `+1234567890` → `+123***7890` * - Names: `John Doe` → `J*** D***` * * @example * ```typescript * const redactor = new PiiRedactor(); * const safe = redactor.redactMessage('User user@example.com logged in'); * // Output: 'User u***@***.com logged in' * ``` */ export declare class PiiRedactor { private options; /** * Constructor * * @param options - PII redaction configuration */ constructor(options?: PiiRedactionOptions); /** * Redact PII from a log message * * @param message - Log message that may contain PII * @returns Redacted message */ redactMessage(message: string): string; /** * Redact PII from log metadata * * @param metadata - Log metadata that may contain PII * @returns Redacted metadata */ redactMetadata(metadata?: LogMetadata): LogMetadata | undefined; /** * Redact email addresses * @private */ private redactEmails; /** * Redact IP addresses (keep first 3 octets) * @private */ private redactIpAddresses; /** * Redact a single IP address * @private */ private redactIpAddress; /** * Redact JWT tokens and bearer tokens * @private */ private redactTokens; /** * Redact phone numbers * @private */ private redactPhoneNumbers; /** * Redact names (firstName, lastName) * @private */ private redactNames; /** * Redact passwords and password-related fields * @private */ private redactPasswords; /** * Recursively redact an object * @private */ private redactObject; } //# sourceMappingURL=pii-redactor.d.ts.map