/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { BlockHeader } from '@aztec/circuits.js';
import { Fr } from '@aztec/foundation/fields';
import { BufferReader } from '@aztec/foundation/serialize';
import { type FieldsOf } from '@aztec/foundation/types';
import { z } from 'zod';
import { TxHash } from '../tx/tx_hash.js';
import { type Signable, type SignatureDomainSeparator } from './signature_utils.js';
export declare class ConsensusPayload implements Signable {
    /** The block header the attestation is made over */
    readonly header: BlockHeader;
    readonly archive: Fr;
    /** The sequence of transactions in the block */
    readonly txHashes: TxHash[];
    private size;
    constructor(
    /** The block header the attestation is made over */
    header: BlockHeader, archive: Fr, 
    /** The sequence of transactions in the block */
    txHashes: TxHash[]);
    static get schema(): z.ZodEffects<z.ZodObject<{
        header: z.ZodEffects<z.ZodObject<{
            lastArchive: z.ZodEffects<z.ZodObject<{
                root: z.ZodType<Fr, any, string>;
                nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                root: Fr;
                nextAvailableLeafIndex: number;
            }, {
                root: string;
                nextAvailableLeafIndex: string | number | bigint;
            }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                root: string;
                nextAvailableLeafIndex: string | number | bigint;
            }>;
            contentCommitment: z.ZodEffects<z.ZodObject<{
                numTxs: z.ZodType<Fr, any, string>;
                blobsHash: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                    type: z.ZodLiteral<"Buffer">;
                    data: z.ZodArray<z.ZodNumber, "many">;
                }, "strip", z.ZodTypeAny, {
                    type: "Buffer";
                    data: number[];
                }, {
                    type: "Buffer";
                    data: number[];
                }>, Buffer, {
                    type: "Buffer";
                    data: number[];
                }>]>;
                inHash: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                    type: z.ZodLiteral<"Buffer">;
                    data: z.ZodArray<z.ZodNumber, "many">;
                }, "strip", z.ZodTypeAny, {
                    type: "Buffer";
                    data: number[];
                }, {
                    type: "Buffer";
                    data: number[];
                }>, Buffer, {
                    type: "Buffer";
                    data: number[];
                }>]>;
                outHash: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                    type: z.ZodLiteral<"Buffer">;
                    data: z.ZodArray<z.ZodNumber, "many">;
                }, "strip", z.ZodTypeAny, {
                    type: "Buffer";
                    data: number[];
                }, {
                    type: "Buffer";
                    data: number[];
                }>, Buffer, {
                    type: "Buffer";
                    data: number[];
                }>]>;
            }, "strip", z.ZodTypeAny, {
                numTxs: Fr;
                blobsHash: Buffer;
                inHash: Buffer;
                outHash: Buffer;
            }, {
                numTxs: string;
                blobsHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                inHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                outHash: string | {
                    type: "Buffer";
                    data: number[];
                };
            }>, import("@aztec/circuits.js").ContentCommitment, {
                numTxs: string;
                blobsHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                inHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                outHash: string | {
                    type: "Buffer";
                    data: number[];
                };
            }>;
            state: z.ZodEffects<z.ZodObject<{
                l1ToL2MessageTree: z.ZodEffects<z.ZodObject<{
                    root: z.ZodType<Fr, any, string>;
                    nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    root: Fr;
                    nextAvailableLeafIndex: number;
                }, {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                }>;
                partial: z.ZodEffects<z.ZodObject<{
                    noteHashTree: z.ZodEffects<z.ZodObject<{
                        root: z.ZodType<Fr, any, string>;
                        nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        root: Fr;
                        nextAvailableLeafIndex: number;
                    }, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>;
                    nullifierTree: z.ZodEffects<z.ZodObject<{
                        root: z.ZodType<Fr, any, string>;
                        nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        root: Fr;
                        nextAvailableLeafIndex: number;
                    }, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>;
                    publicDataTree: z.ZodEffects<z.ZodObject<{
                        root: z.ZodType<Fr, any, string>;
                        nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        root: Fr;
                        nextAvailableLeafIndex: number;
                    }, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    noteHashTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                    nullifierTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                    publicDataTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                }, {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                }>, import("@aztec/circuits.js").PartialStateReference, {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                }>;
            }, "strip", z.ZodTypeAny, {
                l1ToL2MessageTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                partial: import("@aztec/circuits.js").PartialStateReference;
            }, {
                l1ToL2MessageTree: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                partial: {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                };
            }>, import("@aztec/circuits.js").StateReference, {
                l1ToL2MessageTree: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                partial: {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                };
            }>;
            globalVariables: z.ZodEffects<z.ZodObject<{
                chainId: z.ZodType<Fr, any, string>;
                version: z.ZodType<Fr, any, string>;
                blockNumber: z.ZodType<Fr, any, string>;
                slotNumber: z.ZodType<Fr, any, string>;
                timestamp: z.ZodType<Fr, any, string>;
                coinbase: z.ZodType<import("@aztec/circuits.js").EthAddress, any, string>;
                feeRecipient: z.ZodType<import("@aztec/circuits.js").AztecAddress, any, string>;
                gasFees: z.ZodEffects<z.ZodObject<{
                    feePerDaGas: z.ZodType<Fr, any, string>;
                    feePerL2Gas: z.ZodType<Fr, any, string>;
                }, "strip", z.ZodTypeAny, {
                    feePerDaGas: Fr;
                    feePerL2Gas: Fr;
                }, {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                }>, import("@aztec/circuits.js").GasFees, {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                }>;
            }, "strip", z.ZodTypeAny, {
                version: Fr;
                chainId: Fr;
                blockNumber: Fr;
                slotNumber: Fr;
                timestamp: Fr;
                coinbase: import("@aztec/circuits.js").EthAddress;
                feeRecipient: import("@aztec/circuits.js").AztecAddress;
                gasFees: import("@aztec/circuits.js").GasFees;
            }, {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            }>, import("@aztec/circuits.js").GlobalVariables, {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            }>;
            totalFees: z.ZodType<Fr, any, string>;
            totalManaUsed: z.ZodType<Fr, any, string>;
        }, "strip", z.ZodTypeAny, {
            lastArchive: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
            contentCommitment: import("@aztec/circuits.js").ContentCommitment;
            state: import("@aztec/circuits.js").StateReference;
            globalVariables: import("@aztec/circuits.js").GlobalVariables;
            totalFees: Fr;
            totalManaUsed: Fr;
        }, {
            lastArchive: {
                root: string;
                nextAvailableLeafIndex: string | number | bigint;
            };
            contentCommitment: {
                numTxs: string;
                blobsHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                inHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                outHash: string | {
                    type: "Buffer";
                    data: number[];
                };
            };
            state: {
                l1ToL2MessageTree: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                partial: {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                };
            };
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            totalFees: string;
            totalManaUsed: string;
        }>, BlockHeader, {
            lastArchive: {
                root: string;
                nextAvailableLeafIndex: string | number | bigint;
            };
            contentCommitment: {
                numTxs: string;
                blobsHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                inHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                outHash: string | {
                    type: "Buffer";
                    data: number[];
                };
            };
            state: {
                l1ToL2MessageTree: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                partial: {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                };
            };
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            totalFees: string;
            totalManaUsed: string;
        }>;
        archive: z.ZodType<Fr, any, string>;
        txHashes: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer, string>, TxHash, string>, "many">;
    }, "strip", z.ZodTypeAny, {
        archive: Fr;
        header: BlockHeader;
        txHashes: TxHash[];
    }, {
        archive: string;
        header: {
            lastArchive: {
                root: string;
                nextAvailableLeafIndex: string | number | bigint;
            };
            contentCommitment: {
                numTxs: string;
                blobsHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                inHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                outHash: string | {
                    type: "Buffer";
                    data: number[];
                };
            };
            state: {
                l1ToL2MessageTree: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                partial: {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                };
            };
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            totalFees: string;
            totalManaUsed: string;
        };
        txHashes: string[];
    }>, ConsensusPayload, {
        archive: string;
        header: {
            lastArchive: {
                root: string;
                nextAvailableLeafIndex: string | number | bigint;
            };
            contentCommitment: {
                numTxs: string;
                blobsHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                inHash: string | {
                    type: "Buffer";
                    data: number[];
                };
                outHash: string | {
                    type: "Buffer";
                    data: number[];
                };
            };
            state: {
                l1ToL2MessageTree: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                partial: {
                    noteHashTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    nullifierTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    publicDataTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                };
            };
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            totalFees: string;
            totalManaUsed: string;
        };
        txHashes: string[];
    }>;
    static getFields(fields: FieldsOf<ConsensusPayload>): readonly [BlockHeader, Fr, TxHash[]];
    getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
    toBuffer(): Buffer;
    static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload;
    static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload;
    static empty(): ConsensusPayload;
    /**
     * Get the size of the consensus payload in bytes.
     * @returns The size of the consensus payload.
     */
    getSize(): number;
}
//# sourceMappingURL=consensus_payload.d.ts.map