import { Logger } from '@nestjs/common'; export declare enum RequiredPeerFailureKind { NotRegistered = "not-registered", RegistryUnreachable = "registry-unreachable", PeerUnreachable = "peer-unreachable" } export type RequiredPeerFailureClassifier = (error: unknown) => RequiredPeerFailureKind | undefined; export interface RequiredPeerBootRetryOptions { readonly maxAttempts?: number; readonly initialDelayMs?: number; readonly maxDelayMs?: number; readonly classify?: RequiredPeerFailureClassifier; readonly sleep?: (ms: number) => Promise; readonly random?: () => number; readonly logger?: Pick; } export declare const DEFAULT_REQUIRED_PEER_BOOT_ATTEMPTS = 8; export declare const DEFAULT_REQUIRED_PEER_BOOT_INITIAL_DELAY_MS = 500; export declare const DEFAULT_REQUIRED_PEER_BOOT_MAX_DELAY_MS = 8000; export declare class RequiredPeerUnresolvableError extends Error { readonly peerName: string; readonly attempts: number; readonly lastFailureKind: RequiredPeerFailureKind; constructor(peerName: string, attempts: number, lastFailureKind: RequiredPeerFailureKind, message: string, options?: { readonly cause?: unknown; }); } export declare function classifyRegistryFailure(error: unknown): RequiredPeerFailureKind; export declare function hasServiceUnavailableCause(error: unknown): boolean; export declare function requiredPeerBootBackoffMs(retry: number, initialDelayMs: number, maxDelayMs: number, random: () => number): number; export declare function retryRequiredPeerAtBoot(peerName: string, attempt: () => Promise, options?: RequiredPeerBootRetryOptions): Promise; //# sourceMappingURL=required-peer-boot-retry.d.ts.map