import type { Duration, RetryPolicy } from '../types.ts'; export declare function normalizeStorageTimestamp(timestamp: number, fieldName: string): number; /** * Parse a human-readable duration string or number to milliseconds. * * @example * ```ts * import { parseDuration } from '@lostgradient/weft'; * * console.log(parseDuration(5000)); // 5000 * console.log(parseDuration('250ms')); // 250 * console.log(parseDuration('30s')); // 30000 * console.log(parseDuration('5 minutes')); // 300000 * console.log(parseDuration('2h')); // 7200000 * console.log(parseDuration('1d')); // 86400000 * ``` * * @throws Error when the string uses an invalid format or unknown unit. * @throws RangeError when the resulting duration is negative or non-finite. */ export declare function parseDuration(duration: Duration): number; /** * Calculate exponential backoff delay for a given retry attempt. * `attempt` is 1-indexed: `calculateBackoff(1, policy)` returns * `initialBackoff` directly. Pass `0` only for non-retry probes; the result is * `initialBackoff / backoffMultiplier`. * * @example * ```ts * import { calculateBackoff, type RetryPolicy } from '@lostgradient/weft'; * * const policy: RetryPolicy = { * maxAttempts: 5, * initialBackoff: '1s', * backoffMultiplier: 2, * maxBackoff: '30s', * }; * * console.log(calculateBackoff(1, policy)); // 1000 (attempt 1: 1s) * console.log(calculateBackoff(2, policy)); // 2000 (attempt 2: 2s) * console.log(calculateBackoff(5, policy)); // 16000 (attempt 5: 16s, capped at 30s) * ``` */ export declare function calculateBackoff(attempt: number, policy: RetryPolicy): number;