/**
 * Error Serializer Utility
 *
 * Safe error serialization with full context preservation.
 * Features:
 * - Handles circular references
 * - Filters sensitive data (PII, credentials)
 * - Generates error fingerprints for deduplication
 * - Preserves custom error properties
 * - Filters stack traces in production
 *
 * @module processors/errors
 */
import type { SerializeOptions, SerializedError } from "../../types/index.js";
/**
 * Safely serialize an error with full context preservation.
 * Handles circular references, redacts sensitive data, and preserves error metadata.
 *
 * @param error - Error instance or unknown value to serialize
 * @param options - Serialization options
 * @returns Serialized error with full context
 *
 * @example
 * ```typescript
 * try {
 *   await riskyOperation();
 * } catch (error) {
 *   const serialized = serializeError(error);
 *   logger.error("Operation failed", serialized);
 * }
 * ```
 */
export declare function serializeError(error: unknown, options?: SerializeOptions): SerializedError;
/**
 * Generate a deterministic fingerprint for error aggregation.
 * Normalizes dynamic values (IDs, timestamps, paths) to group similar errors together.
 *
 * @param error - Error to fingerprint
 * @param context - Optional context with operation name
 * @returns 16-character hex fingerprint hash
 *
 * @example
 * ```typescript
 * const fp1 = generateErrorFingerprint(new Error("User 123 not found"));
 * const fp2 = generateErrorFingerprint(new Error("User 456 not found"));
 * // fp1 === fp2 (same error pattern, different IDs)
 * ```
 */
export declare function generateErrorFingerprint(error: Error, context?: {
    operation?: string;
}): string;
/**
 * Safely stringify an object with circular reference handling.
 *
 * @param obj - Object to stringify
 * @param maxDepth - Maximum depth for nested objects
 * @returns JSON string representation
 */
export declare function safeStringify(obj: unknown, maxDepth?: number): string;
/**
 * Extract safe metadata from an object.
 * Sanitizes sensitive fields and handles truncation.
 *
 * @param obj - Object to extract metadata from
 * @param options - Extraction options
 * @returns Sanitized metadata record
 *
 * @example
 * ```typescript
 * const metadata = extractSafeMetadata({
 *   userId: "123",
 *   password: "secret",
 *   data: largeObject,
 * });
 * // Result: { userId: "123", password: "[REDACTED]", data: truncated }
 * ```
 */
export declare function extractSafeMetadata(obj: unknown, options?: {
    /** Maximum size per field */
    maxSize?: number;
    /** Maximum depth for nested objects */
    maxDepth?: number;
}): Record<string, unknown>;
/**
 * Create a minimal error representation for logging.
 * Useful when you need just the essentials without full serialization.
 *
 * @param error - Error to summarize
 * @returns Minimal error representation
 */
export declare function summarizeError(error: unknown): {
    type: string;
    message: string;
    code?: string;
    fingerprint: string;
};
