import { ChainForkConfig } from "@lodestar/config";
import { RootHex, Slot, gloas } from "@lodestar/types";
import { Metrics } from "../../metrics/metrics.js";
import { IClock } from "../../util/clock.js";
import { InsertOutcome } from "./types.js";
type BlockRootHex = string;
export declare class PayloadAttestationPool {
    private readonly config;
    private readonly clock;
    private readonly metrics;
    private readonly aggregateByDataRootByBlockRootBySlot;
    private lowestPermissibleSlot;
    constructor(config: ChainForkConfig, clock: IClock, metrics?: Metrics | null);
    get size(): number;
    add(message: gloas.PayloadAttestationMessage, payloadAttDataRootHex: RootHex, validatorCommitteeIndex: number): InsertOutcome;
    /**
     * Get payload attestations to be included in a block.
     * Pick the top `maxAttestation` number of attestations with the most votes
     */
    getPayloadAttestationsForBlock(beaconBlockRoot: BlockRootHex, slot: Slot, maxAttestation: number): gloas.PayloadAttestation[];
    prune(clockSlot: Slot): void;
}
export {};
//# sourceMappingURL=payloadAttestationPool.d.ts.map