import { Buffer32 } from '@aztec/foundation/buffer'; import type { TopicType } from './topic_type.js'; export declare class P2PMessage { readonly payload: Buffer; readonly timestamp?: Date | undefined; readonly traceContext?: string | undefined; constructor(payload: Buffer, timestamp?: Date | undefined, traceContext?: string | undefined); static fromGossipable(message: Gossipable, instrumentMessages?: boolean, traceContext?: string): P2PMessage; static fromMessageData(messageData: Buffer, instrumentMessages?: boolean): P2PMessage; toMessageData(): Buffer; } /** * Gossipable * * Any class which extends gossipable will be able to be Gossiped over the p2p network */ export declare abstract class Gossipable { private cachedId; /** The p2p topic identifier, this determines how the message is handled */ static p2pTopic: TopicType; /** * A digest of the message information **used for logging only**. * The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data. */ p2pMessageLoggingIdentifier(): Promise; abstract generateP2PMessageIdentifier(): Promise; abstract toBuffer(): Buffer; toMessage(): Buffer; /** * Get the size of the gossipable object. * This is used for metrics recording. */ abstract getSize(): number; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUF1QjtJQUN2QywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQU1yRDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9