/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { AztecAddress, type PrivateLog } from '@aztec/circuits.js';
import { EventSelector } from '@aztec/foundation/abi';
import { type Fq } from '@aztec/foundation/fields';
import { Event } from './payload.js';
/**
 * A class which wraps event data which is pushed on L1.
 */
export declare class L1EventPayload {
    #private;
    /**
     * A event as emitted from Noir contract. Can be used along with private key to compute nullifier.
     */
    event: Event;
    /**
     * Address of the contract this tx is interacting with.
     */
    contractAddress: AztecAddress;
    /**
     * Type identifier for the underlying event, required to determine how to compute its hash and nullifier.
     */
    eventTypeId: EventSelector;
    constructor(
    /**
     * A event as emitted from Noir contract. Can be used along with private key to compute nullifier.
     */
    event: Event, 
    /**
     * Address of the contract this tx is interacting with.
     */
    contractAddress: AztecAddress, 
    /**
     * Type identifier for the underlying event, required to determine how to compute its hash and nullifier.
     */
    eventTypeId: EventSelector);
    static decryptAsIncoming(log: PrivateLog, sk: Fq): L1EventPayload | undefined;
    /**
     * Serializes the L1EventPayload object into a Buffer.
     * @returns Buffer representation of the L1EventPayload object.
     */
    toIncomingBodyPlaintext(): Buffer;
    /**
     * Create a random L1EventPayload object (useful for testing purposes).
     * @param contract - The address of a contract the event was emitted from.
     * @returns A random L1EventPayload object.
     */
    static random(contract?: AztecAddress): L1EventPayload;
    equals(other: L1EventPayload): boolean;
}
//# sourceMappingURL=l1_event_payload.d.ts.map