import { InMemoryNetwork } from "@peerbit/libp2p-test-utils/inmemory-libp2p.js"; export type FanoutTreeSimParams = { nodes: number; rootIndex: number; bootstraps: number; bootstrapMaxPeers: number; subscribers: number; relayFraction: number; messages: number; secondBatchMessages: number; secondBatchSettleMs: number; msgRate: number; msgSize: number; intervalMs: number; settleMs: number; deadlineMs: number; maxDataAgeMs: number; timeoutMs: number; seed: number; topic: string; rootUploadLimitBps: number; rootMaxChildren: number; relayUploadLimitBps: number; relayMaxChildren: number; allowKick: boolean; bidPerByte: number; bidPerByteRelay: number; bidPerByteLeaf: number; repair: boolean; repairWindowMessages: number; repairMaxBackfillMessages: number; repairIntervalMs: number; repairMaxPerReq: number; neighborRepair: boolean; neighborRepairPeers: number; neighborMeshPeers: number; neighborAnnounceIntervalMs: number; neighborMeshRefreshIntervalMs: number; neighborHaveTtlMs: number; neighborRepairBudgetBps: number; neighborRepairBurstMs: number; streamRxDelayMs: number; streamHighWaterMarkBytes: number; dialDelayMs: number; joinConcurrency: number; joinReqTimeoutMs: number; candidateShuffleTopK: number; candidateScoringMode: "ranked-shuffle" | "ranked-strict" | "weighted"; parentUpgradeIntervalMs: number; parentUpgradeLeafOnly: boolean; parentUpgradeMinLevelGain: number; parentUpgradeRootMinLevelGain: number; parentUpgradeRootMinSubtreeGain: number; parentUpgradeNonRootMinLevelGain: number; parentUpgradeMinFreeSlots: number; parentUpgradeRootMinFreeSlots: number; parentUpgradeMaxChildLoadRatio: number; parentUpgradeRootMaxChildLoadRatio: number; parentUpgradeCooldownMs: number; parentUpgradeFailedBackoffMinMs: number; parentUpgradeFailedBackoffMaxMs: number; parentUpgradeQuietMs: number; parentUpgradeRepairQuietMs: number; parentUpgradeMaxPerPeer: number; parentUpgradeRepairGuard: boolean; parentUpgradeDataGuard: boolean; parentUpgradeMode: "direct" | "probe" | "shadow"; parentUpgradeVerifyStaleRootCapacity: boolean; parentUpgradeStaleRootProbeProbability: number; parentProbeTimeoutMs: number; parentProbeMaxPerRound: number; parentProbeMaxLagMessages: number; parentProbeRejectCooldownMs: number; parentProbeRejectCooldownMaxMs: number; parentShadowObserveMs: number; parentShadowMinObservations: number; parentShadowDualPathMs: number; parentShadowDualPathMinMessages: number; bootstrapEnsureIntervalMs: number; trackerQueryIntervalMs: number; joinAttemptsPerRound: number; candidateCooldownMs: number; joinPhases: boolean; joinPhaseSettleMs: number; lateRootConnectAfterMs: number; lateRootDuringPublish: boolean; lateRootMaxChildren: number; lateRootConnectFraction: number; maxLatencySamples: number; profile: boolean; progress: boolean; progressEveryMs: number; dropDataFrameRate: number; churnEveryMs: number; churnDownMs: number; churnFraction: number; assertMinJoinedPct: number; assertMinDeliveryPct: number; assertMinDeadlineDeliveryPct: number; assertMaxUploadFracPct: number; assertMaxOverheadFactor: number; assertMaxControlBpp: number; assertMaxTrackerBpp: number; assertMaxTrackerBytes: number; assertMaxRepairBpp: number; assertAttachP95Ms: number; assertMaxTreeLevelP95: number; assertMaxFormationScore: number; assertMinReparentUpgradeTotal: number; assertMinActiveShadowPromoteTotal: number; assertMaxOrphans: number; assertRecoveryP95Ms: number; assertMaxReparentsPerMin: number; assertMaxOrphanArea: number; }; export type FanoutTreeSimResult = { params: FanoutTreeSimParams; bootstrapCount: number; subscriberCount: number; relayCount: number; joinedCount: number; joinedPct: number; joinMs: number; attachSamples: number; attachP50: number; attachP95: number; attachP99: number; attachMax: number; formationTreeMaxLevel: number; formationTreeLevelP95: number; formationTreeLevelAvg: number; formationTreeOrphans: number; formationTreeChildrenP95: number; formationTreeChildrenMax: number; formationTreeRootChildren: number; formationUnderlayEdges: number; formationUnderlayDistP95: number; formationUnderlayDistMax: number; formationStretchP95: number; formationStretchMax: number; formationScore: number; publishMs: number; expected: number; delivered: number; deliveredPct: number; deliveredWithinDeadline: number; deliveredWithinDeadlinePct: number; duplicates: number; secondBatchExpected: number; secondBatchDelivered: number; secondBatchDeliveredPct: number; secondBatchDeliveredWithinDeadline: number; secondBatchDeliveredWithinDeadlinePct: number; secondBatchLatencySamples: number; secondBatchLatencyP50: number; secondBatchLatencyP95: number; secondBatchLatencyP99: number; secondBatchLatencyMax: number; secondBatchLatencyP95ByHash: Record; latencySamples: number; latencyP50: number; latencyP95: number; latencyP99: number; latencyMax: number; droppedForwardsTotal: number; droppedForwardsMax: number; droppedForwardsMaxNode?: string; staleForwardsDroppedTotal: number; staleForwardsDroppedMax: number; staleForwardsDroppedMaxNode?: string; dataWriteDropsTotal: number; dataWriteDropsMax: number; dataWriteDropsMaxNode?: string; reparentDisconnectTotal: number; reparentStaleTotal: number; reparentKickedTotal: number; publishActiveReparentUpgradeTotal: number; publishActiveReparentUpgradeSkipDataTotal: number; publishActiveReparentUpgradeSkipRepairTotal: number; publishActiveReparentUpgradeSkipQuietTotal: number; publishActiveParentProbeReqSentTotal: number; publishActiveParentShadowStartTotal: number; publishActiveParentShadowPromoteTotal: number; reparentUpgradeTotal: number; upgradedPeerHashes: string[]; upgradedBranchPeerHashes: string[]; reparentUpgradeSkipLeafTotal: number; reparentUpgradeSkipRepairTotal: number; reparentUpgradeSkipDataTotal: number; reparentUpgradeSkipCooldownTotal: number; reparentUpgradeSkipQuietTotal: number; reparentUpgradeSkipBudgetTotal: number; reparentUpgradeSkipCandidateLevelTotal: number; reparentUpgradeSkipCandidateSlotsTotal: number; reparentUpgradeSkipCandidatePressureTotal: number; reparentUpgradeSkipRootPressureTotal: number; reparentUpgradeSkipProbeNoReplyTotal: number; reparentUpgradeSkipProbeNotRootedTotal: number; reparentUpgradeSkipProbeRepairTotal: number; reparentUpgradeSkipProbeLagTotal: number; reparentUpgradeSkipProbeOverloadedTotal: number; reparentUpgradeSkipProbeCooldownTotal: number; parentProbeReqSentTotal: number; parentProbeReqReceivedTotal: number; parentProbeReplySentTotal: number; parentProbeReplyReceivedTotal: number; parentUpgradeRootReservationCreatedTotal: number; parentUpgradeRootReservationConsumedTotal: number; parentUpgradeRootReservationRejectedTotal: number; parentUpgradeRootReservationMarginRejectedTotal: number; parentUpgradeRootReservationBlockedTotal: number; parentUpgradeRootReservationExpiredTotal: number; parentShadowStartTotal: number; parentShadowObserveTotal: number; parentShadowPromoteTotal: number; parentShadowResetTotal: number; parentShadowRejectNoReplyTotal: number; parentShadowRejectNotRootedTotal: number; parentShadowRejectCapacityTotal: number; parentShadowRejectRepairTotal: number; parentShadowRejectLagTotal: number; parentShadowRejectOverloadedTotal: number; parentShadowRejectLevelTotal: number; treeMaxLevel: number; treeLevelP95: number; treeLevelAvg: number; treeOrphans: number; treeChildrenP95: number; treeChildrenMax: number; treeRootChildren: number; maxUploadBps: number; maxUploadFracPct: number; maxUploadNode?: string; rootUploadBps: number; rootUploadFracPct: number; streamQueuedBytesTotal: number; streamQueuedBytesMax: number; streamQueuedBytesP95: number; streamQueuedBytesMaxNode?: string; streamQueuedBytesByLane: number[]; churnEvents: number; churnedPeersTotal: number; maintDurationMs: number; maintSamples: number; maintMaxOrphans: number; maintOrphanArea: number; maintRecoveryCount: number; maintRecoveryP50Ms: number; maintRecoveryP95Ms: number; maintReparentsPerMin: number; maintMaxReparentsPerPeer: number; maintLevelP95DriftMax: number; maintChildrenP95DriftMax: number; overheadFactorData: number; controlBpp: number; trackerBpp: number; repairBpp: number; earningsTotal: number; earningsRelayCount: number; earningsRelayP50: number; earningsRelayP95: number; earningsRelayMax: number; protocolControlSends: number; protocolControlBytesSent: number; protocolControlBytesSentJoin: number; protocolControlBytesSentRepair: number; protocolControlBytesSentTracker: number; protocolControlReceives: number; protocolControlBytesReceived: number; protocolDataSends: number; protocolDataPayloadBytesSent: number; protocolDataReceives: number; protocolDataPayloadBytesReceived: number; protocolRepairReqSent: number; protocolFetchReqSent: number; protocolIHaveSent: number; protocolTrackerAnnounceSent: number; protocolTrackerQuerySent: number; protocolTrackerReplySent: number; protocolTrackerFeedbackSent: number; protocolCacheHitsServed: number; protocolHoleFillsFromNeighbor: number; protocolRouteCacheHits: number; protocolRouteCacheMisses: number; protocolRouteCacheExpirations: number; protocolRouteCacheEvictions: number; protocolRouteProxyQueries: number; protocolRouteProxyTimeouts: number; protocolRouteProxyFanout: number; network: InMemoryNetwork["metrics"]; profile?: { cpuUserMs: number; cpuSystemMs: number; rssMb: number; heapUsedMb: number; eventLoopDelayP95Ms: number; eventLoopDelayMaxMs: number; }; }; export declare const resolveFanoutTreeSimParams: (input: Partial) => FanoutTreeSimParams; export declare const formatFanoutTreeSimResult: (r: FanoutTreeSimResult) => string; export declare const runFanoutTreeSim: (input: Partial) => Promise; //# sourceMappingURL=fanout-tree-sim-lib.d.ts.map