/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { Buffer32 } from '@aztec/foundation/buffer';
import { type Secp256k1Signer } from '@aztec/foundation/crypto';
import { Signature } from '@aztec/foundation/eth-signature';
import { BufferReader } from '@aztec/foundation/serialize';
import { type FieldsOf } from '@aztec/foundation/types';
import { z } from 'zod';
import { Gossipable } from '../p2p/gossipable.js';
import { EpochProofQuotePayload } from './epoch_proof_quote_payload.js';
export declare class EpochProofQuote extends Gossipable {
    readonly payload: EpochProofQuotePayload;
    readonly signature: Signature;
    static p2pTopic: string;
    constructor(payload: EpochProofQuotePayload, signature: Signature);
    static empty(): EpochProofQuote;
    static random(): EpochProofQuote;
    static getFields(fields: FieldsOf<EpochProofQuote>): readonly [EpochProofQuotePayload, Signature];
    p2pMessageIdentifier(): Buffer32;
    toBuffer(): Buffer;
    static fromBuffer(buf: Buffer | BufferReader): EpochProofQuote;
    static get schema(): z.ZodEffects<z.ZodObject<{
        payload: z.ZodEffects<z.ZodObject<{
            epochToProve: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
            validUntilSlot: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
            bondAmount: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
            prover: z.ZodType<import("./epoch_proof_quote_payload.js").EthAddress, any, string>;
            basisPointFee: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            epochToProve: bigint;
            validUntilSlot: bigint;
            bondAmount: bigint;
            prover: import("./epoch_proof_quote_payload.js").EthAddress;
            basisPointFee: number;
        }, {
            epochToProve: string | number | bigint;
            validUntilSlot: string | number | bigint;
            bondAmount: string | number | bigint;
            prover: string;
            basisPointFee: string | number | bigint;
        }>, EpochProofQuotePayload, {
            epochToProve: string | number | bigint;
            validUntilSlot: string | number | bigint;
            bondAmount: string | number | bigint;
            prover: string;
            basisPointFee: string | number | bigint;
        }>;
        signature: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, Signature, string>;
    }, "strip", z.ZodTypeAny, {
        payload: EpochProofQuotePayload;
        signature: Signature;
    }, {
        payload: {
            epochToProve: string | number | bigint;
            validUntilSlot: string | number | bigint;
            bondAmount: string | number | bigint;
            prover: string;
            basisPointFee: string | number | bigint;
        };
        signature: string;
    }>, EpochProofQuote, {
        payload: {
            epochToProve: string | number | bigint;
            validUntilSlot: string | number | bigint;
            bondAmount: string | number | bigint;
            prover: string;
            basisPointFee: string | number | bigint;
        };
        signature: string;
    }>;
    /**
     * Creates a new quote with a signature.
     * The digest provided must match what the rollup contract will produce i.e. `_hashTypedDataV4(EpochProofQuoteLib.hash(quote))`
     *
     * @param digest the digest of the payload that should be signed
     * @param payload the actual quote
     * @param signer the signer
     * @returns a quote with an accompanying signature
     */
    static new(digest: Buffer32, payload: EpochProofQuotePayload, signer: Secp256k1Signer): EpochProofQuote;
    toViemArgs(): {
        quote: {
            epochToProve: bigint;
            validUntilSlot: bigint;
            bondAmount: bigint;
            prover: `0x${string}`;
            basisPointFee: number;
        };
        signature: import("@aztec/foundation/eth-signature").ViemSignature;
    };
    /**
     * Get the size of the epoch proof quote in bytes.
     * @returns The size of the epoch proof quote in bytes.
     */
    getSize(): number;
}
//# sourceMappingURL=epoch_proof_quote.d.ts.map