import { ContainerType, ListCompositeType } from "@chainsafe/ssz";
import { isForkPostDeneb, isForkPostElectra } from "@lodestar/params";
import { ssz } from "@lodestar/types";
// Misc SSZ types used only in the beacon-node package, no need to upstream to types
export const signedBLSToExecutionChangeVersionedType = new ContainerType({
    // Assumes less than 256 forks, sounds reasonable in our lifetime
    preCapella: ssz.Boolean,
    data: ssz.capella.SignedBLSToExecutionChange,
}, { jsonCase: "eth2", typeName: "SignedBLSToExecutionChangeVersionedType" });
export const BeaconBlocksByRootRequestType = (fork, config) => new ListCompositeType(ssz.Root, isForkPostDeneb(fork) ? config.MAX_REQUEST_BLOCKS_DENEB : config.MAX_REQUEST_BLOCKS);
export const BlobSidecarsByRootRequestType = (fork, config) => new ListCompositeType(ssz.deneb.BlobIdentifier, isForkPostElectra(fork) ? config.MAX_REQUEST_BLOB_SIDECARS_ELECTRA : config.MAX_REQUEST_BLOB_SIDECARS);
export const DataColumnSidecarsByRootRequestType = (config) => new ListCompositeType(ssz.fulu.DataColumnsByRootIdentifier, config.MAX_REQUEST_BLOCKS_DENEB);
//# sourceMappingURL=types.js.map