/** biome-ignore-all lint/suspicious/noTemplateCurlyInString: The metric templates requires to have `${}` in a normal string */
import { NotReorgedReason } from "@lodestar/fork-choice";
import { ArchiveStoreTask } from "../../chain/archiveStore/archiveStore.js";
import { FrequencyStateArchiveStep } from "../../chain/archiveStore/strategies/frequencyStateArchiveStrategy.js";
import { BlockInputSource } from "../../chain/blocks/blockInput/index.js";
import { JobQueueItemType } from "../../chain/bls/index.js";
import { AttestationErrorCode, BlockErrorCode } from "../../chain/errors/index.js";
import { type InvalidAttestationData, ScannedSlotsTerminationReason } from "../../chain/opPools/aggregatedAttestationPool.js";
import { InsertOutcome } from "../../chain/opPools/types.js";
import { RegenCaller, RegenFnName } from "../../chain/regen/interface.js";
import { ReprocessStatus } from "../../chain/reprocess.js";
import { RejectReason } from "../../chain/seenCache/seenAttestationData.js";
import { CacheItemType } from "../../chain/stateCache/types.js";
import { OpSource } from "../../chain/validatorMonitor.js";
import { ExecutionPayloadStatus } from "../../execution/index.js";
import { GossipType } from "../../network/index.js";
import { CannotAcceptWorkReason, ReprocessRejectReason } from "../../network/processor/index.js";
import { BackfillSyncMethod } from "../../sync/backfill/backfill.js";
import { PendingBlockType } from "../../sync/types.js";
import { PeerSyncType, RangeSyncType } from "../../sync/utils/remoteSyncType.js";
import { AllocSource } from "../../util/bufferPool.js";
import { DataColumnReconstructionCode } from "../../util/dataColumns.js";
import { DataColumnEngineResult } from "../../util/execution.js";
import { LodestarMetadata } from "../options.js";
import { RegistryMetricCreator } from "../utils/registryMetricCreator.js";
export type LodestarMetrics = ReturnType<typeof createLodestarMetrics>;
/**
 * Extra Lodestar custom metrics
 */
export declare function createLodestarMetrics(register: RegistryMetricCreator, metadata?: LodestarMetadata, genesisTime?: number): {
    gossipValidationQueue: {
        length: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
        }>;
        keySize: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
        }>;
        droppedJobs: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
        }>;
        jobTime: import("@lodestar/utils").Histogram<{
            topic: GossipType;
        }>;
        jobWaitTime: import("@lodestar/utils").Histogram<{
            topic: GossipType;
        }>;
        concurrency: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
        }>;
        keyAge: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        queueTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    networkProcessor: {
        gossipValidationAccept: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
        }>;
        gossipValidationIgnore: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
        }>;
        gossipValidationReject: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
        }>;
        gossipValidationError: import("@lodestar/utils").GaugeExtra<{
            topic: GossipType;
            error: string;
        }>;
        gossipAttestationIgnoreByReason: import("@lodestar/utils").GaugeExtra<{
            reason: AttestationErrorCode;
        }>;
        gossipAttestationRejectByReason: import("@lodestar/utils").GaugeExtra<{
            reason: AttestationErrorCode;
        }>;
        executeWorkCalls: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        jobsSubmitted: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        canNotAcceptWork: import("@lodestar/utils").GaugeExtra<{
            reason: CannotAcceptWorkReason;
        }>;
    };
    networkWorkerHandler: {
        reqRespBridgeReqCallerPending: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    networkWorkerWireEventsOnMainThreadLatency: import("@lodestar/utils").Histogram<{
        eventName: string;
    }>;
    regenQueue: {
        length: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        droppedJobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        jobTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        jobWaitTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        concurrency: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    blockProcessorQueue: {
        length: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        droppedJobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        jobTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        jobWaitTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        concurrency: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    unfinalizedBlockWritesQueue: {
        length: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        droppedJobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        jobTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        jobWaitTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        concurrency: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    engineHttpProcessorQueue: {
        length: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        droppedJobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        jobTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        jobWaitTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        concurrency: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    apiRest: {
        responseTime: import("@lodestar/utils").Histogram<{
            operationId: string;
        }>;
        requests: import("@lodestar/utils").GaugeExtra<{
            operationId: string;
        }>;
        errors: import("@lodestar/utils").GaugeExtra<{
            operationId: string;
        }>;
        activeSockets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        socketsBytesRead: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        socketsBytesWritten: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    production: {
        producedAggregateParticipants: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        producedSyncContributionParticipants: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        producedSyncAggregateParticipants: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    duties: {
        requestNextEpochProposalDutiesHit: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        requestNextEpochProposalDutiesMiss: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    epochTransitionByCaller: import("@lodestar/utils").GaugeExtra<{
        caller: RegenCaller;
    }>;
    bls: {
        aggregatedPubkeys: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    blsThreadPool: {
        jobsWorkerTime: import("@lodestar/utils").GaugeExtra<{
            workerId: number;
        }>;
        successJobsSignatureSetsCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        errorAggregateSignatureSetsCount: import("@lodestar/utils").GaugeExtra<{
            type: JobQueueItemType;
        }>;
        errorJobsSignatureSetsCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        jobWaitTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        queueLength: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        workersBusy: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalJobsGroupsStarted: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalJobsStarted: import("@lodestar/utils").GaugeExtra<{
            type: JobQueueItemType;
        }>;
        totalSigSetsStarted: import("@lodestar/utils").GaugeExtra<{
            type: JobQueueItemType;
        }>;
        batchRetries: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        batchSigsSuccess: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        sameMessageRetryJobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        sameMessageRetrySets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        latencyToWorker: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        latencyFromWorker: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        mainThreadDurationInThreadPool: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        timePerSigSet: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        totalSigSets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        prioritizedSigSets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        batchableSigSets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        aggregateWithRandomnessAsyncDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        pubkeysAggregationMainThreadDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    blsSingleThread: {
        singleThreadDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        timePerSigSet: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    syncStatus: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    syncPeersBySyncType: import("@lodestar/utils").GaugeExtra<{
        syncType: PeerSyncType;
    }>;
    syncSwitchGossipSubscriptions: import("@lodestar/utils").GaugeExtra<{
        action: string;
    }>;
    syncRange: {
        syncChainsEvents: import("@lodestar/utils").GaugeExtra<{
            syncType: RangeSyncType;
            event: string;
        }>;
        syncChains: import("@lodestar/utils").GaugeExtra<{
            syncType: RangeSyncType;
        }>;
        syncChainsPeers: import("@lodestar/utils").Histogram<{
            syncType: RangeSyncType;
        }>;
        syncChainHighestTargetSlotCompleted: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        headSyncPeers: import("@lodestar/utils").GaugeExtra<{
            columnIndex: number;
        }>;
        finalizedSyncPeers: import("@lodestar/utils").GaugeExtra<{
            columnIndex: number;
        }>;
        downloadByRange: {
            success: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            error: import("@lodestar/utils").GaugeExtra<{
                code: string;
                client: string;
            }>;
            warn: import("@lodestar/utils").GaugeExtra<{
                code: string;
                client: string;
            }>;
        };
    };
    blockInputSync: {
        switchNetworkSubscriptions: import("@lodestar/utils").GaugeExtra<{
            action: string;
        }>;
        requests: import("@lodestar/utils").GaugeExtra<{
            type: PendingBlockType;
        }>;
        source: import("@lodestar/utils").GaugeExtra<{
            source: BlockInputSource;
        }>;
        pendingBlocks: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        knownBadBlocks: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        processedBlocksSuccess: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        processedBlocksError: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        downloadedBlocksSuccess: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        downloadedBlocksError: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        removedBlocks: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        elapsedTimeTillReceived: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        resolveAvailabilitySource: import("@lodestar/utils").GaugeExtra<{
            source: BlockInputSource;
        }>;
        fetchBegin: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        fetchTimeSec: import("@lodestar/utils").Histogram<{
            result: string;
        }>;
        fetchPeers: import("@lodestar/utils").GaugeExtra<{
            result: string;
        }>;
        downloadByRoot: {
            success: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            error: import("@lodestar/utils").GaugeExtra<{
                code: string;
                client: string;
            }>;
            warn: import("@lodestar/utils").GaugeExtra<{
                code: string;
                client: string;
            }>;
        };
        peerBalancer: {
            peersMetaCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            peersActiveRequestCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            totalActiveRequests: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        };
    };
    gossipSyncCommittee: {
        equivocationCount: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        equivocationToHeadCount: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
    };
    gossipAttestation: {
        useHeadBlockState: import("@lodestar/utils").GaugeExtra<{
            caller: RegenCaller;
        }>;
        useHeadBlockStateDialedToTargetEpoch: import("@lodestar/utils").GaugeExtra<{
            caller: RegenCaller;
        }>;
        headSlotToAttestationSlot: import("@lodestar/utils").Histogram<{
            caller: RegenCaller;
        }>;
        shufflingCacheHit: import("@lodestar/utils").GaugeExtra<{
            caller: RegenCaller;
        }>;
        shufflingCacheMiss: import("@lodestar/utils").GaugeExtra<{
            caller: RegenCaller;
        }>;
        shufflingCacheRegenHit: import("@lodestar/utils").GaugeExtra<{
            caller: RegenCaller;
        }>;
        shufflingCacheRegenMiss: import("@lodestar/utils").GaugeExtra<{
            caller: RegenCaller;
        }>;
        attestationSlotToClockSlot: import("@lodestar/utils").Histogram<{
            caller: RegenCaller;
        }>;
        attestationBatchHistogram: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        attestationNonBatchCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    gossipBlock: {
        elapsedTimeTillReceived: import("@lodestar/utils").Histogram<{
            source: OpSource;
        }>;
        elapsedTimeTillProcessed: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        gossipValidation: {
            recvToValidation: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            validationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        };
        stateTransition: {
            recvToValidation: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            validationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        };
        signatureVerification: {
            recvToValidation: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            validationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        };
        executionPayload: {
            recvToValidation: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            validationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        };
        blockImport: {
            recvToValidation: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            validationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        };
        receivedToBlobsAvailabilityTime: import("@lodestar/utils").Histogram<{
            numBlobs: number;
        }>;
        receivedToFullyVerifiedTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        verifiedToBlobsAvailabiltyTime: import("@lodestar/utils").Histogram<{
            numBlobs: number;
        }>;
        processBlockErrors: import("@lodestar/utils").GaugeExtra<{
            error: "NOT_BLOCK_ERROR" | BlockErrorCode;
        }>;
    };
    gossipBlob: {
        recvToValidation: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        validationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        publishedFromEngine: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
    };
    gossipExecutionPayloadEnvelope: {
        elapsedTimeTillReceived: import("@lodestar/utils").Histogram<{
            source: OpSource;
        }>;
    };
    recoverBlobSidecars: {
        blobsReconstructed: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        reconstructionTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    recoverDataColumnSidecars: {
        custodyBeforeReconstruction: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        reconstructionResult: import("@lodestar/utils").Counter<{
            result: DataColumnReconstructionCode;
        }>;
    };
    dataColumns: {
        alreadyAdded: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        bySource: import("@lodestar/utils").GaugeExtra<{
            source: BlockInputSource;
        }>;
        elapsedTimeTillReceived: import("@lodestar/utils").Histogram<{
            receivedOrder: number;
        }>;
        sentPeersPerSubnet: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        missingCustodyColumns: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        dataColumnEngineResult: import("@lodestar/utils").Counter<{
            result: DataColumnEngineResult;
        }>;
    };
    importBlock: {
        persistBlockNoSerializedDataCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        persistBlockWithSerializedDataCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        elapsedTimeTillBecomeHead: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        setHeadAfterCutoff: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        bySource: import("@lodestar/utils").GaugeExtra<{
            source: BlockInputSource;
        }>;
        blobsBySource: import("@lodestar/utils").GaugeExtra<{
            blobsSource: BlockInputSource;
        }>;
        notOverrideFcuReason: import("@lodestar/utils").Counter<{
            reason: NotReorgedReason;
        }>;
    };
    engineNotifyNewPayloadResult: import("@lodestar/utils").GaugeExtra<{
        result: ExecutionPayloadStatus;
    }>;
    engineNotifyForkchoiceUpdateResult: import("@lodestar/utils").GaugeExtra<{
        result: ExecutionPayloadStatus;
    }>;
    backfillSync: {
        backfilledTillSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        prevFinOrWsSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalBlocks: import("@lodestar/utils").GaugeExtra<{
            method: BackfillSyncMethod;
        }>;
        errors: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        status: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    opPool: {
        aggregatedAttestationPool: {
            size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            uniqueData: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            attDataPerSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            committeesPerSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            maxAttestationsPerCommittee: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            attestationsPerCommittee: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            gossipInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            apiInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            packedAttestations: {
                committeeCount: import("@lodestar/utils").GaugeExtra<{
                    index: number;
                }>;
                totalAttesters: import("@lodestar/utils").GaugeExtra<{
                    index: number;
                }>;
                nonParticipation: import("@lodestar/utils").GaugeExtra<{
                    index: number;
                }>;
                newSeenAttesters: import("@lodestar/utils").GaugeExtra<{
                    index: number;
                }>;
                totalEffectiveBalance: import("@lodestar/utils").GaugeExtra<{
                    index: number;
                }>;
                inclusionDistance: import("@lodestar/utils").GaugeExtra<{
                    index: number;
                }>;
                scannedSlots: import("@lodestar/utils").GaugeExtra<{
                    reason: ScannedSlotsTerminationReason;
                }>;
                scannedAttestations: import("@lodestar/utils").GaugeExtra<{
                    inclusionDistance: number;
                }>;
                returnedAttestations: import("@lodestar/utils").GaugeExtra<{
                    inclusionDistance: number;
                }>;
                poolSlots: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
                totalConsolidations: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
                emptyAttestationData: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
                invalidAttestationData: import("@lodestar/utils").GaugeExtra<{
                    reason: InvalidAttestationData;
                }>;
                seenCommittees: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            };
        };
        attestationPool: {
            size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            gossipInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            apiInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            getAggregateCacheMisses: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        };
        attesterSlashingPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        proposerSlashingPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        voluntaryExitPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        blsToExecutionChangePoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        syncCommitteeMessagePoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        syncCommitteeMessagePoolInsertOutcome: import("@lodestar/utils").Counter<{
            insertOutcome: InsertOutcome;
        }>;
        syncContributionAndProofPool: {
            size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            gossipInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            apiInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            blockRootsPerSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            subnetsByBlockRoot: import("@lodestar/utils").GaugeExtra<{
                index: number;
            }>;
            participantsByBlockRoot: import("@lodestar/utils").GaugeExtra<{
                index: number;
            }>;
            getAggregateRoots: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            getAggregateSubnets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            getAggregateParticipants: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            getAggregateReturnsEmpty: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        };
        payloadAttestationPool: {
            size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            payloadAttDataPerSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            gossipInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            apiInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            getPayloadAttestationsCacheMisses: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        };
        executionPayloadBidPool: {
            size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            gossipInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
            apiInsertOutcome: import("@lodestar/utils").Counter<{
                insertOutcome: InsertOutcome;
            }>;
        };
    };
    chain: {
        blacklistedBlocks: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    proposerBalanceDeltaAny: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    stateCache: {
        lookups: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        hits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        adds: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        reads: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
        secondsSinceLastRead: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
        stateClonedCount: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    bufferPool: {
        length: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        hits: import("@lodestar/utils").Counter<{
            source: AllocSource;
        }>;
        misses: import("@lodestar/utils").Counter<{
            source: AllocSource;
        }>;
        grows: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
    };
    cpStateCache: {
        lookups: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        hits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        adds: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        size: import("@lodestar/utils").GaugeExtra<{
            type: CacheItemType;
        }>;
        epochSize: import("@lodestar/utils").GaugeExtra<{
            type: CacheItemType;
        }>;
        reads: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
        secondsSinceLastRead: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
        stateClonedCount: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        numStatesUpdated: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        statePruneFromMemoryCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        statePersistSecFromSlot: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        stateReloadValidatorsSerializeDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        stateReloadValidatorsSerializeAllocCount: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        stateReloadShufflingCacheMiss: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        stateReloadDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        stateReloadEpochDiff: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        stateReloadSecFromSlot: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        stateReloadDbReadTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        persistedStateRemoveCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    balancesCache: {
        requests: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        misses: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        closestStateResult: import("@lodestar/utils").Counter<{
            stateId: string;
        }>;
    };
    shufflingCache: {
        size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        insertPromiseCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        hit: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        miss: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        shufflingSetMultipleTimes: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        shufflingPromiseNotResolved: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        shufflingPromiseResolutionTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    seenCache: {
        aggregatedAttestations: {
            superSetCheckTotal: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            isKnownCalls: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            isKnownHits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        };
        committeeContributions: {
            superSetCheckTotal: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
            isKnownCalls: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            isKnownHits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        };
        attestationData: {
            totalSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            countPerSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            hit: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            miss: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            reject: import("@lodestar/utils").GaugeExtra<{
                reason: RejectReason;
            }>;
        };
        blockInput: {
            blockInputCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            serializedObjectRefs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
            duplicateBlockCount: import("@lodestar/utils").Counter<{
                source: BlockInputSource;
            }>;
            duplicateBlobCount: import("@lodestar/utils").Counter<{
                source: BlockInputSource;
            }>;
            duplicateColumnCount: import("@lodestar/utils").Counter<{
                source: BlockInputSource;
            }>;
            createdByBlock: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
            createdByBlob: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
            createdByColumn: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        };
    };
    processFinalizedCheckpoint: {
        durationByTask: import("@lodestar/utils").Histogram<{
            source: ArchiveStoreTask;
        }>;
        frequencyStateArchive: import("@lodestar/utils").Histogram<{
            step: FrequencyStateArchiveStep;
        }>;
    };
    regenFnCallTotal: import("@lodestar/utils").GaugeExtra<{
        entrypoint: RegenFnName;
        caller: RegenCaller;
    }>;
    regenFnQueuedTotal: import("@lodestar/utils").GaugeExtra<{
        entrypoint: RegenFnName;
        caller: RegenCaller;
    }>;
    regenFnCallDuration: import("@lodestar/utils").Histogram<{
        entrypoint: RegenFnName;
        caller: RegenCaller;
    }>;
    regenFnTotalErrors: import("@lodestar/utils").GaugeExtra<{
        entrypoint: RegenFnName;
        caller: RegenCaller;
    }>;
    regenFnAddPubkeyTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    regenFnDeletePubkeyTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    regenFnNumStatesUpdated: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    unhandledPromiseRejections: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    stateSerializeDuration: import("@lodestar/utils").Histogram<{
        source: AllocSource;
    }>;
    regenGetState: {
        blockCount: import("@lodestar/utils").Histogram<{
            caller: RegenCaller;
        }>;
        getSeedState: import("@lodestar/utils").Histogram<{
            caller: RegenCaller;
        }>;
        loadBlocks: import("@lodestar/utils").Histogram<{
            caller: RegenCaller;
        }>;
        stateTransition: import("@lodestar/utils").Histogram<{
            caller: RegenCaller;
        }>;
    };
    precomputeNextEpochTransition: {
        count: import("@lodestar/utils").Counter<{
            result: string;
        }>;
        hits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        waste: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        duration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    reprocessApiAttestations: {
        total: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        resolve: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        waitSecBeforeResolve: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        reject: import("@lodestar/utils").GaugeExtra<{
            reason: ReprocessStatus;
        }>;
        waitSecBeforeReject: import("@lodestar/utils").GaugeExtra<{
            reason: ReprocessStatus;
        }>;
    };
    reprocessGossipAttestations: {
        total: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        countPerSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        resolve: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        waitSecBeforeResolve: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        reject: import("@lodestar/utils").GaugeExtra<{
            reason: ReprocessRejectReason;
        }>;
        waitSecBeforeReject: import("@lodestar/utils").GaugeExtra<{
            reason: ReprocessRejectReason;
        }>;
    };
    lightclientServer: {
        onSyncAggregate: import("@lodestar/utils").GaugeExtra<{
            event: string;
        }>;
        highestSlot: import("@lodestar/utils").GaugeExtra<{
            item: string;
        }>;
        updateNotBetter: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        attestedDataCacheMiss: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        attestedDataDiffPeriod: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        staleLightClientUpdates: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
    };
    executionEnginerHttpClient: {
        requestTime: import("@lodestar/utils").Histogram<{
            routeId: string;
        }>;
        streamTime: import("@lodestar/utils").Histogram<{
            routeId: string;
        }>;
        requestErrors: import("@lodestar/utils").GaugeExtra<{
            routeId: string;
        }>;
        retryCount: import("@lodestar/utils").GaugeExtra<{
            routeId: string;
        }>;
        requestUsedFallbackUrl: import("@lodestar/utils").GaugeExtra<{
            routeId: string;
        }>;
        activeRequests: import("@lodestar/utils").GaugeExtra<{
            routeId: string;
        }>;
        configUrlsCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    builderHttpClient: {
        requestTime: import("@lodestar/utils").Histogram<{
            routeId: string;
        }>;
        streamTime: import("@lodestar/utils").Histogram<{
            routeId: string;
        }>;
        requestErrors: import("@lodestar/utils").GaugeExtra<{
            routeId: string;
            baseUrl: string;
        }>;
        requestToFallbacks: import("@lodestar/utils").GaugeExtra<{
            routeId: string;
            baseUrl: string;
        }>;
        urlsScore: import("@lodestar/utils").GaugeExtra<{
            urlIndex: number;
            baseUrl: string;
        }>;
    };
    db: {
        dbReadReq: import("@lodestar/utils").GaugeExtra<{
            bucket: string;
        }>;
        dbReadItems: import("@lodestar/utils").GaugeExtra<{
            bucket: string;
        }>;
        dbWriteReq: import("@lodestar/utils").GaugeExtra<{
            bucket: string;
        }>;
        dbWriteItems: import("@lodestar/utils").GaugeExtra<{
            bucket: string;
        }>;
        dbSizeTotal: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dbApproximateSizeTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    pruneHistory: {
        pruneCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        fetchKeys: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        pruneKeys: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
};
//# sourceMappingURL=lodestar.d.ts.map