import { BLSPubkey, Epoch, Root } from "@lodestar/types"; import { Logger } from "@lodestar/utils"; import { LodestarValidatorDatabaseController } from "../types.js"; import { Interchange, InterchangeFormatVersion } from "./interchange/index.js"; import { ISlashingProtection } from "./interface.js"; import { SlashingProtectionAttestation, SlashingProtectionBlock } from "./types.js"; export { InvalidAttestationError, InvalidAttestationErrorCode } from "./attestation/index.js"; export { InvalidBlockError, InvalidBlockErrorCode } from "./block/index.js"; export type { Interchange, InterchangeFormat } from "./interchange/index.js"; export { InterchangeError, InterchangeErrorErrorCode } from "./interchange/index.js"; export type { ISlashingProtection, InterchangeFormatVersion, SlashingProtectionBlock, SlashingProtectionAttestation }; /** * Handles slashing protection for validator proposer and attester duties as well as slashing protection * during a validator interchange import/export process. */ export declare class SlashingProtection implements ISlashingProtection { protected db: LodestarValidatorDatabaseController; private blockService; private attestationService; constructor(db: LodestarValidatorDatabaseController); checkAndInsertBlockProposal(pubKey: BLSPubkey, block: SlashingProtectionBlock): Promise; checkAndInsertAttestation(pubKey: BLSPubkey, attestation: SlashingProtectionAttestation): Promise; hasAttestedInEpoch(pubKey: BLSPubkey, epoch: Epoch): Promise; importInterchange(interchange: Interchange, genesisValidatorsRoot: Root, logger?: Logger): Promise; exportInterchange(genesisValidatorsRoot: Root, pubkeys: BLSPubkey[], formatVersion: InterchangeFormatVersion, logger?: Logger): Promise; listPubkeys(): Promise; } //# sourceMappingURL=index.d.ts.map