import { ContainerType, ListBasicType, ValueOf } from "@chainsafe/ssz";
import { ChainForkConfig } from "@lodestar/config";
import { ForkName } from "@lodestar/params";
import { Attestation, AttesterSlashing, Epoch, LightClientFinalityUpdate, LightClientOptimisticUpdate, RootHex, SSEPayloadAttributes, Slot, StringType, UintNum64, altair, capella, electra, phase0 } from "@lodestar/types";
import { EmptyMeta, EmptyResponseData } from "../../utils/codecs.js";
import { Endpoint, RouteDefinitions } from "../../utils/index.js";
export declare const blobSidecarSSE: ContainerType<{
    blockRoot: StringType<string>;
    index: import("@chainsafe/ssz").UintNumberType;
    slot: import("@chainsafe/ssz").UintNumberType;
    kzgCommitment: StringType<string>;
    versionedHash: StringType<string>;
}>;
type BlobSidecarSSE = ValueOf<typeof blobSidecarSSE>;
export declare const dataColumnSidecarSSE: ContainerType<{
    blockRoot: StringType<string>;
    index: import("@chainsafe/ssz").UintNumberType;
    slot: import("@chainsafe/ssz").UintNumberType;
    kzgCommitments: ListBasicType<StringType<string>>;
}>;
type DataColumnSidecarSSE = ValueOf<typeof dataColumnSidecarSSE>;
export declare enum EventType {
    /**
     * The node has finished processing, resulting in a new head. previous_duty_dependent_root is
     * `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch - 1) - 1)` and
     * current_duty_dependent_root is `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1)`.
     * Both dependent roots use the genesis block root in the case of underflow.
     */
    head = "head",
    /** The node has received a block (from P2P or API) that is successfully imported on the fork-choice `on_block` handler */
    block = "block",
    /** The node has received a block (from P2P or API) that passes validation rules of the `beacon_block` topic */
    blockGossip = "block_gossip",
    /** The node has received a valid attestation (from P2P or API) */
    attestation = "attestation",
    /** The node has received a valid SingleAttestation (from P2P or API) */
    singleAttestation = "single_attestation",
    /** The node has received a valid voluntary exit (from P2P or API) */
    voluntaryExit = "voluntary_exit",
    /** The node has received a valid proposer slashing (from P2P or API) */
    proposerSlashing = "proposer_slashing",
    /** The node has received a valid attester slashing (from P2P or API) */
    attesterSlashing = "attester_slashing",
    /** The node has received a valid blsToExecutionChange (from P2P or API) */
    blsToExecutionChange = "bls_to_execution_change",
    /** Finalized checkpoint has been updated */
    finalizedCheckpoint = "finalized_checkpoint",
    /** The node has reorganized its chain */
    chainReorg = "chain_reorg",
    /** The node has received a valid sync committee SignedContributionAndProof (from P2P or API) */
    contributionAndProof = "contribution_and_proof",
    /** New or better optimistic header update available */
    lightClientOptimisticUpdate = "light_client_optimistic_update",
    /** New or better finality update available */
    lightClientFinalityUpdate = "light_client_finality_update",
    /** Payload attributes for block proposal */
    payloadAttributes = "payload_attributes",
    /** The node has received a valid BlobSidecar (from P2P or API) */
    blobSidecar = "blob_sidecar",
    /** The node has received a valid DataColumnSidecar (from P2P or API) */
    dataColumnSidecar = "data_column_sidecar"
}
export declare const eventTypes: {
    [K in EventType]: K;
};
export type EventData = {
    [EventType.head]: {
        slot: Slot;
        block: RootHex;
        state: RootHex;
        epochTransition: boolean;
        previousDutyDependentRoot: RootHex;
        currentDutyDependentRoot: RootHex;
        executionOptimistic: boolean;
    };
    [EventType.block]: {
        slot: Slot;
        block: RootHex;
        executionOptimistic: boolean;
    };
    [EventType.blockGossip]: {
        slot: Slot;
        block: RootHex;
    };
    [EventType.attestation]: Attestation;
    [EventType.singleAttestation]: electra.SingleAttestation;
    [EventType.voluntaryExit]: phase0.SignedVoluntaryExit;
    [EventType.proposerSlashing]: phase0.ProposerSlashing;
    [EventType.attesterSlashing]: AttesterSlashing;
    [EventType.blsToExecutionChange]: capella.SignedBLSToExecutionChange;
    [EventType.finalizedCheckpoint]: {
        block: RootHex;
        state: RootHex;
        epoch: Epoch;
        executionOptimistic: boolean;
    };
    [EventType.chainReorg]: {
        slot: Slot;
        depth: UintNum64;
        oldHeadBlock: RootHex;
        newHeadBlock: RootHex;
        oldHeadState: RootHex;
        newHeadState: RootHex;
        epoch: Epoch;
        executionOptimistic: boolean;
    };
    [EventType.contributionAndProof]: altair.SignedContributionAndProof;
    [EventType.lightClientOptimisticUpdate]: {
        version: ForkName;
        data: LightClientOptimisticUpdate;
    };
    [EventType.lightClientFinalityUpdate]: {
        version: ForkName;
        data: LightClientFinalityUpdate;
    };
    [EventType.payloadAttributes]: {
        version: ForkName;
        data: SSEPayloadAttributes;
    };
    [EventType.blobSidecar]: BlobSidecarSSE;
    [EventType.dataColumnSidecar]: DataColumnSidecarSSE;
};
export type BeaconEvent = {
    [K in EventType]: {
        type: K;
        message: EventData[K];
    };
}[EventType];
type EventstreamArgs = {
    /** Event types to subscribe to */
    topics: EventType[];
    signal: AbortSignal;
    onEvent: (event: BeaconEvent) => void;
    onError?: (err: Error) => void;
    onClose?: () => void;
};
export type Endpoints = {
    /**
     * Subscribe to beacon node events
     * Provides endpoint to subscribe to beacon node Server-Sent-Events stream.
     * Consumers should use [eventsource](https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface)
     * implementation to listen on those events.
     *
     * Returns if SSE stream has been opened.
     */
    eventstream: Endpoint<"GET", EventstreamArgs, {
        query: {
            topics: EventType[];
        };
    }, EmptyResponseData, EmptyMeta>;
};
export declare function getDefinitions(_config: ChainForkConfig): RouteDefinitions<Endpoints>;
export type TypeJson<T> = {
    toJson: (data: T) => unknown;
    fromJson: (data: unknown) => T;
};
export declare function getTypeByEvent(config: ChainForkConfig): {
    [K in EventType]: TypeJson<EventData[K]>;
};
export declare function getEventSerdes(config: ChainForkConfig): {
    toJson: (event: BeaconEvent) => unknown;
    fromJson: (type: EventType, data: unknown) => import("@chainsafe/ssz").ValueOfFields<{
        message: ContainerType<{
            aggregatorIndex: import("@chainsafe/ssz").UintNumberType;
            contribution: ContainerType<{
                slot: import("@chainsafe/ssz").UintNumberType;
                beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
                subcommitteeIndex: import("@chainsafe/ssz").UintNumberType;
                aggregationBits: import("@chainsafe/ssz").BitVectorType;
                signature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            selectionProof: import("@chainsafe/ssz").ByteVectorType;
        }>;
        signature: import("@chainsafe/ssz").ByteVectorType;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        message: ContainerType<{
            validatorIndex: import("@chainsafe/ssz").UintNumberType;
            fromBlsPubkey: import("@chainsafe/ssz").ByteVectorType;
            toExecutionAddress: import("@lodestar/types").ExecutionAddressType;
        }>;
        signature: import("@chainsafe/ssz").ByteVectorType;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        aggregationBits: import("@chainsafe/ssz").BitListType;
        data: ContainerType<{
            slot: import("@chainsafe/ssz").UintNumberType;
            index: import("@chainsafe/ssz").UintNumberType;
            beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            source: ContainerType<{
                epoch: import("@chainsafe/ssz").UintNumberType;
                root: import("@chainsafe/ssz").ByteVectorType;
            }>;
            target: ContainerType<{
                epoch: import("@chainsafe/ssz").UintNumberType;
                root: import("@chainsafe/ssz").ByteVectorType;
            }>;
        }>;
        signature: import("@chainsafe/ssz").ByteVectorType;
        committeeBits: import("@chainsafe/ssz").BitVectorType;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        committeeIndex: import("@chainsafe/ssz").UintNumberType;
        attesterIndex: import("@chainsafe/ssz").UintNumberType;
        data: ContainerType<{
            slot: import("@chainsafe/ssz").UintNumberType;
            index: import("@chainsafe/ssz").UintNumberType;
            beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            source: ContainerType<{
                epoch: import("@chainsafe/ssz").UintNumberType;
                root: import("@chainsafe/ssz").ByteVectorType;
            }>;
            target: ContainerType<{
                epoch: import("@chainsafe/ssz").UintNumberType;
                root: import("@chainsafe/ssz").ByteVectorType;
            }>;
        }>;
        signature: import("@chainsafe/ssz").ByteVectorType;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        attestation1: ContainerType<{
            attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
            data: ContainerType<{
                slot: import("@chainsafe/ssz").UintBigintType;
                index: import("@chainsafe/ssz").UintBigintType;
                beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
                source: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
                target: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
            }>;
            signature: import("@chainsafe/ssz").ByteVectorType;
        }>;
        attestation2: ContainerType<{
            attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
            data: ContainerType<{
                slot: import("@chainsafe/ssz").UintBigintType;
                index: import("@chainsafe/ssz").UintBigintType;
                beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
                source: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
                target: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
            }>;
            signature: import("@chainsafe/ssz").ByteVectorType;
        }>;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        aggregationBits: import("@chainsafe/ssz").BitListType;
        data: ContainerType<{
            slot: import("@chainsafe/ssz").UintNumberType;
            index: import("@chainsafe/ssz").UintNumberType;
            beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            source: ContainerType<{
                epoch: import("@chainsafe/ssz").UintNumberType;
                root: import("@chainsafe/ssz").ByteVectorType;
            }>;
            target: ContainerType<{
                epoch: import("@chainsafe/ssz").UintNumberType;
                root: import("@chainsafe/ssz").ByteVectorType;
            }>;
        }>;
        signature: import("@chainsafe/ssz").ByteVectorType;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        attestation1: ContainerType<{
            attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
            data: ContainerType<{
                slot: import("@chainsafe/ssz").UintBigintType;
                index: import("@chainsafe/ssz").UintBigintType;
                beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
                source: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
                target: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
            }>;
            signature: import("@chainsafe/ssz").ByteVectorType;
        }>;
        attestation2: ContainerType<{
            attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
            data: ContainerType<{
                slot: import("@chainsafe/ssz").UintBigintType;
                index: import("@chainsafe/ssz").UintBigintType;
                beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
                source: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
                target: ContainerType<{
                    epoch: import("@chainsafe/ssz").UintBigintType;
                    root: import("@chainsafe/ssz").ByteVectorType;
                }>;
            }>;
            signature: import("@chainsafe/ssz").ByteVectorType;
        }>;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        signedHeader1: ContainerType<{
            message: ContainerType<{
                slot: import("@chainsafe/ssz").UintBigintType;
                proposerIndex: import("@chainsafe/ssz").UintNumberType;
                parentRoot: import("@chainsafe/ssz").ByteVectorType;
                stateRoot: import("@chainsafe/ssz").ByteVectorType;
                bodyRoot: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signature: import("@chainsafe/ssz").ByteVectorType;
        }>;
        signedHeader2: ContainerType<{
            message: ContainerType<{
                slot: import("@chainsafe/ssz").UintBigintType;
                proposerIndex: import("@chainsafe/ssz").UintNumberType;
                parentRoot: import("@chainsafe/ssz").ByteVectorType;
                stateRoot: import("@chainsafe/ssz").ByteVectorType;
                bodyRoot: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signature: import("@chainsafe/ssz").ByteVectorType;
        }>;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        message: ContainerType<{
            epoch: import("@chainsafe/ssz").UintNumberType;
            validatorIndex: import("@chainsafe/ssz").UintNumberType;
        }>;
        signature: import("@chainsafe/ssz").ByteVectorType;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        blockRoot: StringType<string>;
        index: import("@chainsafe/ssz").UintNumberType;
        slot: import("@chainsafe/ssz").UintNumberType;
        kzgCommitment: StringType<string>;
        versionedHash: StringType<string>;
    }> | import("@chainsafe/ssz").ValueOfFields<{
        blockRoot: StringType<string>;
        index: import("@chainsafe/ssz").UintNumberType;
        slot: import("@chainsafe/ssz").UintNumberType;
        kzgCommitments: ListBasicType<StringType<string>>;
    }> | {
        slot: number;
        block: string;
        state: string;
        epochTransition: boolean;
        previousDutyDependentRoot: string;
        currentDutyDependentRoot: string;
        executionOptimistic: boolean;
    } | {
        slot: number;
        block: string;
        executionOptimistic: boolean;
    } | {
        slot: number;
        block: string;
    } | {
        block: string;
        state: string;
        epoch: number;
        executionOptimistic: boolean;
    } | {
        slot: number;
        depth: number;
        oldHeadBlock: string;
        newHeadBlock: string;
        oldHeadState: string;
        newHeadState: string;
        epoch: number;
        executionOptimistic: boolean;
    } | {
        version: ForkName;
        data: import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
            }>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                    blobGasUsed: import("@chainsafe/ssz").UintBigintType;
                    excessBlobGas: import("@chainsafe/ssz").UintBigintType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                    blobGasUsed: import("@chainsafe/ssz").UintBigintType;
                    excessBlobGas: import("@chainsafe/ssz").UintBigintType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }>;
    } | {
        version: ForkName;
        data: import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
            }>;
            finalizedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
            }>;
            finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            finalizedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                    blobGasUsed: import("@chainsafe/ssz").UintBigintType;
                    excessBlobGas: import("@chainsafe/ssz").UintBigintType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            finalizedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                    blobGasUsed: import("@chainsafe/ssz").UintBigintType;
                    excessBlobGas: import("@chainsafe/ssz").UintBigintType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            attestedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                    blobGasUsed: import("@chainsafe/ssz").UintBigintType;
                    excessBlobGas: import("@chainsafe/ssz").UintBigintType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            finalizedHeader: ContainerType<{
                beacon: ContainerType<{
                    slot: import("@chainsafe/ssz").UintNumberType;
                    proposerIndex: import("@chainsafe/ssz").UintNumberType;
                    parentRoot: import("@chainsafe/ssz").ByteVectorType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    bodyRoot: import("@chainsafe/ssz").ByteVectorType;
                }>;
                execution: ContainerType<{
                    parentHash: import("@chainsafe/ssz").ByteVectorType;
                    feeRecipient: import("@lodestar/types").ExecutionAddressType;
                    stateRoot: import("@chainsafe/ssz").ByteVectorType;
                    receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
                    logsBloom: import("@chainsafe/ssz").ByteVectorType;
                    prevRandao: import("@chainsafe/ssz").ByteVectorType;
                    blockNumber: import("@chainsafe/ssz").UintNumberType;
                    gasLimit: import("@chainsafe/ssz").UintNumberType;
                    gasUsed: import("@chainsafe/ssz").UintNumberType;
                    timestamp: import("@chainsafe/ssz").UintNumberType;
                    extraData: import("@chainsafe/ssz").ByteListType;
                    baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
                    blockHash: import("@chainsafe/ssz").ByteVectorType;
                    transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
                    withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
                    blobGasUsed: import("@chainsafe/ssz").UintBigintType;
                    excessBlobGas: import("@chainsafe/ssz").UintBigintType;
                }>;
                executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            }>;
            finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
            syncAggregate: ContainerType<{
                syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
                syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
            }>;
            signatureSlot: import("@chainsafe/ssz").UintNumberType;
        }>;
    } | {
        version: ForkName;
        data: import("@chainsafe/ssz").ValueOfFields<{
            proposerIndex: import("@chainsafe/ssz").UintNumberType;
            proposalSlot: import("@chainsafe/ssz").UintNumberType;
            parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
            parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
            payloadAttributes: ContainerType<{
                timestamp: import("@chainsafe/ssz").UintNumberType;
                prevRandao: import("@chainsafe/ssz").ByteVectorType;
                suggestedFeeRecipient: StringType<string>;
            }>;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            proposerIndex: import("@chainsafe/ssz").UintNumberType;
            proposalSlot: import("@chainsafe/ssz").UintNumberType;
            parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
            parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
            payloadAttributes: ContainerType<{
                timestamp: import("@chainsafe/ssz").UintNumberType;
                prevRandao: import("@chainsafe/ssz").ByteVectorType;
                suggestedFeeRecipient: StringType<string>;
                withdrawals: import("@chainsafe/ssz").ListCompositeType<ContainerType<{
                    index: import("@chainsafe/ssz").UintNumberType;
                    validatorIndex: import("@chainsafe/ssz").UintNumberType;
                    address: import("@lodestar/types").ExecutionAddressType;
                    amount: import("@chainsafe/ssz").UintBigintType;
                }>>;
            }>;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            proposerIndex: import("@chainsafe/ssz").UintNumberType;
            proposalSlot: import("@chainsafe/ssz").UintNumberType;
            parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
            parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
            payloadAttributes: ContainerType<{
                timestamp: import("@chainsafe/ssz").UintNumberType;
                prevRandao: import("@chainsafe/ssz").ByteVectorType;
                suggestedFeeRecipient: StringType<string>;
                withdrawals: import("@chainsafe/ssz").ListCompositeType<ContainerType<{
                    index: import("@chainsafe/ssz").UintNumberType;
                    validatorIndex: import("@chainsafe/ssz").UintNumberType;
                    address: import("@lodestar/types").ExecutionAddressType;
                    amount: import("@chainsafe/ssz").UintBigintType;
                }>>;
                parentBeaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            }>;
        }> | import("@chainsafe/ssz").ValueOfFields<{
            proposerIndex: import("@chainsafe/ssz").UintNumberType;
            proposalSlot: import("@chainsafe/ssz").UintNumberType;
            parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
            parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
            payloadAttributes: ContainerType<{
                timestamp: import("@chainsafe/ssz").UintNumberType;
                prevRandao: import("@chainsafe/ssz").ByteVectorType;
                suggestedFeeRecipient: StringType<string>;
                withdrawals: import("@chainsafe/ssz").ListCompositeType<ContainerType<{
                    index: import("@chainsafe/ssz").UintNumberType;
                    validatorIndex: import("@chainsafe/ssz").UintNumberType;
                    address: import("@lodestar/types").ExecutionAddressType;
                    amount: import("@chainsafe/ssz").UintBigintType;
                }>>;
                parentBeaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
            }>;
        }>;
    };
};
export {};
//# sourceMappingURL=events.d.ts.map