import { ApiClient } from "@lodestar/api"; import { Epoch } from "@lodestar/types"; import { Logger } from "@lodestar/utils"; import { Metrics } from "../metrics.js"; import { ISlashingProtection } from "../slashingProtection/index.js"; import { ProcessShutdownCallback, PubkeyHex } from "../types.js"; import { IClock } from "../util/index.js"; import { IndicesService } from "./indices.js"; export type DoppelgangerState = { nextEpochToCheck: Epoch; remainingEpochs: Epoch; }; export declare enum DoppelgangerStatus { /** This pubkey is known to the doppelganger service and has been verified safe */ VerifiedSafe = "VerifiedSafe", /** This pubkey is known to the doppelganger service but has not been verified safe */ Unverified = "Unverified", /** This pubkey is unknown to the doppelganger service */ Unknown = "Unknown", /** This pubkey has been detected to be active on the network */ DoppelgangerDetected = "DoppelgangerDetected" } export declare class DoppelgangerService { private readonly logger; private readonly clock; private readonly api; private readonly indicesService; private readonly slashingProtection; private readonly processShutdownCallback; private readonly metrics; private readonly doppelgangerStateByPubkey; constructor(logger: Logger, clock: IClock, api: ApiClient, indicesService: IndicesService, slashingProtection: ISlashingProtection, processShutdownCallback: ProcessShutdownCallback, metrics: Metrics | null); registerValidator(pubkeyHex: PubkeyHex): Promise; unregisterValidator(pubkeyHex: PubkeyHex): void; getStatus(pubKeyHex: PubkeyHex): DoppelgangerStatus; isDoppelgangerSafe(pubKeyHex: PubkeyHex): boolean; private pollLiveness; private getLiveness; private detectDoppelganger; private onScrapeMetrics; } //# sourceMappingURL=doppelgangerService.d.ts.map