import { ProducedBlockSource } from "@lodestar/types";
import { BlockSelectionResult } from "../../api/impl/validator/index.js";
import { BlockProductionStep, PayloadPreparationType } from "../../chain/produceBlock/index.js";
import { RegistryMetricCreator } from "../utils/registryMetricCreator.js";
export type BeaconMetrics = ReturnType<typeof createBeaconMetrics>;
/**
 * Metrics from:
 * https://github.com/ethereum/beacon-metrics/ and
 * https://hackmd.io/D5FmoeFZScim_squBFl8oA
 */
export declare function createBeaconMetrics(register: RegistryMetricCreator): {
    headSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    finalizedEpoch: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    currentJustifiedEpoch: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    previousJustifiedEpoch: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    currentActiveValidators: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    reorgEventsTotal: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    processedDepositsTotal: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    currentValidators: import("@lodestar/utils").GaugeExtra<{
        status: string;
    }>;
    pendingDeposits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    pendingConsolidations: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    pendingPartialWithdrawals: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    parentBlockDistance: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    blockProductionTime: import("@lodestar/utils").Histogram<{
        source: ProducedBlockSource;
    }>;
    executionBlockProductionTimeSteps: import("@lodestar/utils").Histogram<{
        step: BlockProductionStep;
    }>;
    builderBlockProductionTimeSteps: import("@lodestar/utils").Histogram<{
        step: BlockProductionStep;
    }>;
    blockProductionRequests: import("@lodestar/utils").GaugeExtra<{
        source: ProducedBlockSource;
    }>;
    blockProductionSuccess: import("@lodestar/utils").GaugeExtra<{
        source: ProducedBlockSource;
    }>;
    blockProductionSelectionResults: import("@lodestar/utils").GaugeExtra<BlockSelectionResult>;
    blockProductionNumAggregated: import("@lodestar/utils").Histogram<{
        source: ProducedBlockSource;
    }>;
    blockProductionConsensusBlockValue: import("@lodestar/utils").Histogram<{
        source: ProducedBlockSource;
    }>;
    blockProductionSlotDelta: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    blockProductionExecutionPayloadValue: import("@lodestar/utils").Histogram<{
        source: ProducedBlockSource;
    }>;
    blockProductionCacheSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    blockPayload: {
        payloadAdvancePrepTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        executionPayloadEnvelopeProcessingTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        payloadFetchedTime: import("@lodestar/utils").Histogram<{
            prepType: PayloadPreparationType;
        }>;
        emptyPayloads: import("@lodestar/utils").GaugeExtra<{
            prepType: PayloadPreparationType;
        }>;
        payloadFetchErrors: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    blobs: {
        getBlobsV1Requests: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsV1RequestedBlobCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsV1Error: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsV1Miss: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsV1Hit: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsV1HitButArrivedWhileWaiting: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsV1HitUseful: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    blockInputFetchStats: {
        totalDataAvailableBlockInputBlobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsAlreadyAvailable: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsDelayedGossipAvailable: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsDelayedGossipAvailableSavedGetBlobsCompute: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsFoundInGetBlobsCacheNotNull: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsFoundInGetBlobsCacheNull: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsNotAvailableInGetBlobsCache: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsFinallyQueriedFromNetwork: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsFinallyAvailableFromNetwork: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsRetriedFromNetwork: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlobsRetriedAvailableFromNetwork: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataAvailableBlockInputs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsAvailableUsingGetBlobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsAvailableFromGetBlobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsFinallyAvailableFromNetworkReqResp: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsTriedBlobsPull: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsTriedGetBlobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsResolvedAvailable: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsRetriedAvailableFromNetwork: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        totalDataPromiseBlockInputsReTriedBlobsPull: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsCacheSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        getBlobsCachePruned: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlockInputRetryTrackerCacheSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        dataPromiseBlockInputRetryTrackerCachePruned: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    };
    peerDas: {
        dataColumnSidecarProcessingRequests: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        dataColumnSidecarProcessingSkip: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        dataColumnSidecarProcessingSuccesses: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        dataColumnSidecarGossipVerificationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        dataColumnSidecarComputationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        dataColumnSidecarInclusionProofVerificationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        dataColumnSidecarKzgProofsVerificationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        kzgVerificationDataColumnBatchTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        getBlobsV2PreAllocationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        getBlobsV2Requests: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        getBlobsV2Responses: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        getBlobsV2RequestDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
        custodyGroupCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        custodyGroupsBackfilled: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
        reconstructedColumns: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
        dataColumnsReconstructionTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
    };
    clockSlot: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    clockEpoch: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
    weakHeadDetected: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
};
//# sourceMappingURL=beacon.d.ts.map