import { ApiClient } from "@lodestar/api"; import { ChainForkConfig } from "@lodestar/config"; import { Metrics } from "../metrics.js"; import { IClock, LoggerVc } from "../util/index.js"; import { BlockDutiesService } from "./blockDuties.js"; import { ValidatorStore } from "./validatorStore.js"; /** * Signs and submits `SignedProposerPreferences` for any local validator that will propose * within the next `SUBMIT_BEFORE_PROPOSAL_SLOTS`. Re-submits automatically when the proposer * dependent root for an epoch shifts (e.g. after a reorg) — detected by comparing the cached * `dependentRoot` reported by `BlockDutiesService` against the one we last submitted under. * * Proposers should broadcast their preferences before the fork so the proposer preference caches * of beacon nodes and builders are warm for the first Gloas slots. We start submitting * as soon as a duty's proposal slot is in Gloas, which is up to `SUBMIT_BEFORE_PROPOSAL_SLOTS` * before the fork, so only the first few Gloas slots are affected by this pre-fork submission. */ export declare class ProposerPreferencesService { private readonly config; private readonly logger; private readonly api; private readonly validatorStore; private readonly blockDutiesService; private readonly submitted; constructor(config: ChainForkConfig, logger: LoggerVc, api: ApiClient, clock: IClock, validatorStore: ValidatorStore, blockDutiesService: BlockDutiesService, _metrics: Metrics | null); private runProposerPreferencesTask; /** Drop tracking for past epochs; only currentEpoch and currentEpoch + 1 are ever processed. */ private pruneSubmitted; } //# sourceMappingURL=proposerPreferences.d.ts.map