/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { Duration } from "#time/Duration.js"; import { Entropy } from "#util/Entropy.js"; /** * An iterable of retry values based on a scheduling configuration. */ export declare class RetrySchedule { #private; readonly config: RetrySchedule.Configuration; constructor(entropy: Entropy, config: RetrySchedule.Configuration); /** * Yields intervals. * * Will yield indefinitely until canceled unless {@link config} specifies a timeout. */ [Symbol.iterator](): Generator; } export declare namespace RetrySchedule { /** * Configuration parameters for retry schedule. */ interface Configuration { /** * Overall timeout. * * Leave undefined to allow unlimited retries. */ readonly timeout?: Duration; /** * Maximum number of occurrences (including first). * * Set to zero to disable transmission completely; leave undefined to allow any number of transmissions. */ readonly maximumCount?: number; /** * Interval between first request and final interval. * * Defaults to 1s. */ readonly initialInterval?: Duration; /** * Multiplier for subsequent retries. * * Defaults to 2. */ readonly backoffFactor?: number; /** * Maximum interval between retries (excluding jitter). * * Leave undefined for interval to allow interval to grow continuously. */ readonly maximumInterval?: Duration; /** * Multiplier for retry jitter. * * Leave undefined to disable jitter. */ readonly jitterFactor?: number; } /** * Create a full configuration with defaults. */ function Configuration(defaults: Configuration, config?: Configuration): { timeout?: Duration; maximumCount?: number; initialInterval?: Duration; backoffFactor?: number; maximumInterval?: Duration; jitterFactor?: number; }; } //# sourceMappingURL=RetrySchedule.d.ts.map