import http from 'node:http';
import { Counter, Gauge, Registry, Histogram } from 'prom-client';
import { Config } from './config/config';
import { EventName } from './types';
type LabelNames<T extends readonly string[]> = T[number];
export declare class Prometheus {
    server: ReturnType<typeof http.createServer>;
    register: Registry;
    apiTotalRequests: Counter<LabelNames<['endpoint']>>;
    apiLatency: Histogram<LabelNames<['endpoint']>>;
    apiErrors: Counter<LabelNames<['endpoint']>>;
    isHealthy: boolean;
    networkStatus: Gauge<LabelNames<['networkId', 'rpcHostname']>>;
    orderStatusCountTotal: Gauge<LabelNames<['status']>>;
    orderStatusCount: Gauge<LabelNames<['status', 'offset']>>;
    orderLifecycleCount: Counter<LabelNames<['lifecycle']>>;
    executionRevertedError: Counter<LabelNames<['code', 'networkId']>>;
    transmitterError: Counter<LabelNames<['code', 'networkId', 'lifecycle']>>;
    eventQueueProcessingHealthcheckRates: Counter<LabelNames<['sqsDirectionLabel', 'queueName', 'label']>>;
    eventQueueProcessing: Counter<LabelNames<['eventName', 'networkId', 'sourceNetwork', 'destinationNetwork']>>;
    eventQueueProcessingTime: Gauge<LabelNames<['eventName', 'networkId']>>;
    eventQueueProcessingFailed: Counter<LabelNames<['eventName', 'networkId', 'reason']>>;
    tokenApproval: Counter<LabelNames<['networkId', 'assetNumber', 'result']>>;
    statusTransitionTime: Histogram<LabelNames<['statusTransition', 'source', 'destination']>>;
    statusTransitionTimeRelative: Histogram<LabelNames<['statusTransition', 'source', 'destination']>>;
    orderIngestionTime: Histogram<LabelNames<['networkId']>>;
    blockFetchTime: Histogram<LabelNames<['networkId']>>;
    statusTransition: Counter<LabelNames<['statusTransition']>>;
    dynamoCall: Counter<LabelNames<['app', 'table', 'index', 'type', 'context']>>;
    balance: Gauge<LabelNames<['name', 'sourceNetwork', 'token', 'address']>>;
    totalBalance: Gauge<LabelNames<['name', 'token']>>;
    gasTooHigh: Gauge<LabelNames<['networkId']>>;
    circuitDisconnects: Counter<LabelNames<['endpoint']>>;
    rpcCall: Counter<LabelNames<['rpcHostname', 'url', 'status', 'network']>>;
    transmitterQueue: Gauge<LabelNames<['name', 'networkId']>>;
    distributorClaimSegments: Gauge<LabelNames<['name']>>;
    l3Bonuses: Gauge<LabelNames<['label', 'assetId']>>;
    currentBaseRewardL3: Gauge<LabelNames<[]>>;
    l3Attestations: Gauge<LabelNames<['name', 'networkId']>>;
    l2AttestationsThroughput: Gauge<LabelNames<['name', 'networkId']>>;
    l2AttestationsSent: Gauge<LabelNames<['networkId']>>;
    l2AttestationsDelivered: Gauge<LabelNames<['networkId']>>;
    l2ClaimableAttestationsDelivered: Gauge<LabelNames<['networkId']>>;
    l2AttestationsSize: Gauge<LabelNames<['networkId']>>;
    assetsCounter: Counter<LabelNames<['sourceNetwork', 'destinationNetwork', 'assetAToBLabel']>>;
    l3DLQAttestations: Counter<LabelNames<['sourceNetwork']>>;
    l2EscrowGMPNotMatching: Counter<LabelNames<['sourceNetwork']>>;
    l2EscrowGMPNotMatchingSent: Counter<LabelNames<['sourceNetwork']>>;
    l2LateOrdersSentToDLQ: Counter<LabelNames<['sourceNetwork']>>;
    l2LateOrdersReSentFromDLQ: Counter<LabelNames<['sourceNetwork']>>;
    pendingOrderCount: Gauge<LabelNames<['networkId']>>;
    xRecordsCharged: Counter<LabelNames<[]>>;
    gasPrices: Gauge<LabelNames<['networkId']>>;
    gasLimits: Gauge<LabelNames<['networkId', 'lifecycle']>>;
    gasFees: Gauge<LabelNames<['networkId', 'lifecycle']>>;
    gasFeesUSD: Gauge<LabelNames<['networkId', 'lifecycle']>>;
    gasUsed: Gauge<LabelNames<['networkId', 'name']>>;
    bidCompleted: Counter<LabelNames<['sourceNetwork']>>;
    bidHeatmap: Counter<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    bidFailed: Counter<LabelNames<['sourceNetwork', 'reason']>>;
    bidDifficulty: Gauge<LabelNames<[]>>;
    ordersAtProfit: Counter<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    ordersAtLoss: Counter<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    ordersProfitTotal: Gauge<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    ordersLossTotal: Gauge<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    orderAvgProfitPercentage: Gauge<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    orderAvgLossPercentage: Gauge<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    executorsBalances: Gauge<LabelNames<['executor', 'networkId', 'asset']>>;
    profitability: Counter<LabelNames<['destinationNetwork', 'result']>>;
    profitabilityExecutor: Counter<LabelNames<['destinationNetwork', 'result']>>;
    profitabilitySourceDest: Counter<LabelNames<['sourceNetwork', 'destinationNetwork', 'result']>>;
    executionsCompleted: Counter<LabelNames<['destinationNetwork']>>;
    executionsConfirmed: Counter<LabelNames<['destinationNetwork']>>;
    availableUnderbidMarginUSD: Gauge<LabelNames<['destinationNetwork', 'assetCode']>>;
    executionsFailed: Counter<LabelNames<['destinationNetwork']>>;
    executionsHeatMap: Counter<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    claimsCompleted: Counter<LabelNames<['sourceNetwork']>>;
    claimsFailed: Counter<LabelNames<['sourceNetwork']>>;
    unclaimableByExecutor: Counter<LabelNames<['networkId']>>;
    claimsHeatmap: Counter<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    claimsTotal: Counter<LabelNames<['sourceNetwork']>>;
    expenditures: Counter<LabelNames<['destinationNetwork', 'sourceNetwork', 'asset']>>;
    USDExpensesATT: Counter<LabelNames<[]>>;
    USDIncomesATT: Counter<LabelNames<[]>>;
    incomes: Counter<LabelNames<['destinationNetwork', 'sourceNetwork', 'asset']>>;
    claimsPending: Gauge<LabelNames<['sourceNetwork']>>;
    averagePace: Gauge<LabelNames<[]>>;
    executedAmount: Counter<LabelNames<['networkId', 'asset']>>;
    claimedAmount: Counter<LabelNames<['networkId', 'asset']>>;
    insuranceRefundedAmount: Counter<LabelNames<['networkId']>>;
    BRNRewardsCollectedAmount: Counter<LabelNames<['networkId']>>;
    BRNRewardsToUsersAmount: Counter<LabelNames<['networkId', 'isMainnet']>>;
    TRNRewardsCollectedAmount: Counter<LabelNames<['networkId']>>;
    attestersContractcurrentBatchIndex: Gauge<LabelNames<['sourceNetwork']>>;
    attestationsGuardianPending: Gauge<LabelNames<['sourceNetwork']>>;
    attestationsTotal: Counter<LabelNames<['sourceNetwork']>>;
    attestationsCompleted: Counter<LabelNames<['sourceNetwork', 'type']>>;
    attestationsRevertsCompleted: Counter<LabelNames<[]>>;
    attestationsFailed: Counter<LabelNames<['sourceNetwork']>>;
    attestationsPending: Gauge<LabelNames<['sourceNetwork']>>;
    attestationsHeatMap: Counter<LabelNames<['destinationNetwork', 'sourceNetwork', 'type']>>;
    attestationsDLQTotal: Gauge<LabelNames<['networkId', 'type']>>;
    orderBookchainHeight: Gauge<LabelNames<['label']>>;
    orderValue: Counter<LabelNames<['networkId', 'asset']>>;
    refundValue: Counter<LabelNames<['networkId', 'asset']>>;
    fastWriterTxsAcceptedHeatMap: Counter<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    fastWriterTxsSent: Counter<LabelNames<['sourceNetwork']>>;
    fastWriterTxsAccepted: Counter<LabelNames<['sourceNetwork']>>;
    fastWriterTxsFailed: Counter<LabelNames<['sourceNetwork']>>;
    fastWriterTxsExpired: Counter<LabelNames<['sourceNetwork']>>;
    fastWriterExpiredTxsRefunded: Counter<LabelNames<['sourceNetwork']>>;
    protocolFeesAccrued: Gauge<LabelNames<['networkId', 'assetAddress']>>;
    protocolFeesCollectorBalance: Gauge<LabelNames<['networkId', 'protocolFeesCollector']>>;
    remoteOrder: Gauge<LabelNames<[]>>;
    remoteOrderBalance: Gauge<LabelNames<['networkId', 'asset']>>;
    remoteOrderRefundableOnlyAfterAttestation: Gauge<LabelNames<['networkId']>>;
    remoteOrderIsHalted: Gauge<LabelNames<['networkId']>>;
    remoteOrderProtocolFee: Gauge<LabelNames<['networkId']>>;
    remoteOrderProtocolFeeMinLow: Gauge<LabelNames<['networkId']>>;
    remoteOrderProtocolFeeMinHigh: Gauge<LabelNames<['networkId']>>;
    remoteOrderTimeout: Gauge<LabelNames<['networkId']>>;
    remoteOrderMinMaxAmounts: Gauge<LabelNames<['networkId', 'asset', 'type']>>;
    activeExecutors: Gauge<LabelNames<['offset']>>;
    avgExecutorProfitUSDLastDay: Gauge<LabelNames<[]>>;
    version: Gauge<LabelNames<[]>>;
    doubleSpend: Counter<LabelNames<[]>>;
    currentEthPrice: Gauge<LabelNames<['provider']>>;
    pendingValidationTime: Gauge<LabelNames<['name']>>;
    pendingValidations: Gauge<LabelNames<['name', 'status']>>;
    pricerEstimateError: Counter<LabelNames<['type']>>;
    pricerEstimateTips: Gauge<LabelNames<['networkId']>>;
    estimateFee: Histogram<LabelNames<['label']>>;
    estimateFeeDetailed: Histogram<LabelNames<['label']>>;
    cacheBytesWrite: Counter<LabelNames<['key']>>;
    prophetAdHocBlockFetch: Counter<LabelNames<['networkId']>>;
    invalidConfirmation: Counter<LabelNames<['networkId']>>;
    confirmationMissingBid: Counter<LabelNames<['networkId']>>;
    overTimeConfirmation: Counter<LabelNames<['networkId']>>;
    mismatchingConfirmationId: Counter<LabelNames<['networkId']>>;
    confirmedRefund: Counter<LabelNames<['networkId']>>;
    txFeesUSD: Gauge<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    txTimeMetrics: Gauge<LabelNames<['eventName']>>;
    eventEmitted: Counter<LabelNames<['name', 'networkId']>>;
    lifecycleGasFeesUSD: Gauge<LabelNames<['lifecycle', 'sourceNetwork', 'destinationNetwork']>>;
    protocolFeeWei: Gauge<LabelNames<['lifecycle', 'networkId']>>;
    protocolFeeUSD: Gauge<LabelNames<['lifecycle', 'networkId']>>;
    protocolFeeFlatUSD: Gauge<LabelNames<['label', 'networkId']>>;
    protocolFeeWeiForEstimate: Gauge<LabelNames<['describer', 'networkId']>>;
    protocolFeeUSDForEstimate: Gauge<LabelNames<['describer', 'networkId']>>;
    totalFeesUSD: Gauge<LabelNames<['sourceNetwork', 'destinationNetwork']>>;
    destinationGasFeesUSD: Gauge<LabelNames<['networkId']>>;
    sourceGasFeesUSD: Gauge<LabelNames<['networkId']>>;
    executorsProfitsWei: Gauge<LabelNames<['networkId']>>;
    ordersProfitsWei: Gauge<LabelNames<['networkId']>>;
    executorMismatch: Counter<LabelNames<['networkId']>>;
    placerOrdersInProcessing: Gauge<LabelNames<[]>>;
    redshiftQueryDuration: Gauge<LabelNames<['describer']>>;
    redshiftQueries: Counter<LabelNames<['describer']>>;
    redshiftFailedQueries: Counter<LabelNames<['describer']>>;
    redshiftQueryRowsReturned: Histogram<LabelNames<['describer']>>;
    messiahRestarts: Counter<LabelNames<['podNumber']>>;
    messiahBlocksHeatMap: Counter<LabelNames<['networkId', 'podNumber']>>;
    messiahReceiptsReUsed: Counter<LabelNames<['networkId', 'podNumber']>>;
    messiahBlockReUsed: Counter<LabelNames<['networkId', 'podNumber']>>;
    messiahOrderMissed: Counter<LabelNames<['networkId', 'podNumber', 'eventName', 'status']>>;
    messiahEventsScanned: Counter<LabelNames<['eventName', 'networkId', 'sourceNetwork', 'destinationNetwork', 'podNumber']>>;
    messiahTowerExceptions: Counter<LabelNames<['networkId', 'podNumber', 'label']>>;
    messiahCurrentTimestamp: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahLostOrderClosed: Counter<LabelNames<['networkId', 'podNumber']>>;
    messiahOrderClosed: Counter<LabelNames<['networkId', 'podNumber']>>;
    messiahOrderOpened: Counter<LabelNames<['networkId', 'podNumber']>>;
    messiahUpToDateDistance: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahPerMinuteRate: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahBlockScanned: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahTowerSize: Gauge<LabelNames<['networkId', 'podNumber', 'label']>>;
    messiahDLQSize: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahGasUsed: Gauge<LabelNames<['networkId', 'eventName']>>;
    messiahBlockProcessingTime: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahRelevantTxInBlock: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahBlockFetchTime: Gauge<LabelNames<['networkId', 'podNumber']>>;
    messiahLocalSQSQueueSize: Gauge<LabelNames<['podNumber']>>;
    messiahHourlyStatements: Gauge<LabelNames<[]>>;
    messiahHourlyTime: Gauge<LabelNames<[]>>;
    private readonly config;
    private readonly alternativePort;
    constructor(config: Config, _alternativePort?: number);
    createMetrics(): void;
    startServer(): void;
    stopServer(): void;
    updateTxTimeMetric(eventName: EventName, start: number, end: number): void;
}
export {};
//# sourceMappingURL=prometheus.d.ts.map