/** * 清理錯誤物件中的敏感資訊以供日誌記錄 * * 移除信用卡號、金額、prime、partner key 等敏感資訊, * 同時保留除錯所需的錯誤類型、狀態碼和訊息。 * * @param error - 任何類型的錯誤物件 * @returns 清理後的錯誤訊息字串 * * @example * ```typescript * import { scrubErrorForLogging } from '@carllee1983/tappay-backend-payment-node' * * try { * await client.payByPrime({ * prime: 'sensitive_prime', * amount: 1000, * // ... * }) * } catch (error) { * // 記錄清理後的錯誤(不包含敏感資訊) * const safeLog = scrubErrorForLogging(error) * logger.error('Payment failed:', safeLog) * // 輸出: Payment failed: {"statusCode":400,"message":"Invalid prime","details":"***"} * } * ``` */ export declare function scrubErrorForLogging(error: unknown): string; /** * 判斷錯誤是否應該重試 * * 根據錯誤類型和 HTTP 狀態碼判斷是否應該重試。 * 通常應重試的錯誤包括: * - 5xx 伺服器錯誤 * - 429 Too Many Requests * - 連接超時 * - 網路錯誤 * * @param error - 要判斷的錯誤物件 * @returns true 表示應該重試,false 表示應該放棄 * * @example * ```typescript * import { isRetryableError, retryWithBackoff } from '@carllee1983/tappay-backend-payment-node' * * // 在重試邏輯中使用 * const result = await retryWithBackoff( * async () => client.getTransaction(id), * { * maxRetries: 3, * shouldRetry: isRetryableError * } * ) * * // 或用於錯誤處理決策 * try { * const data = await fetchData() * } catch (error) { * if (isRetryableError(error)) { * // 可以重試 * return retryWithBackoff(() => fetchData()) * } else { * // 不應重試的錯誤(如驗證錯誤) * throw error * } * } * ``` */ export declare function isRetryableError(error: unknown): boolean; //# sourceMappingURL=errorHandling.d.ts.map