/// <reference types="node" />
import { MessageType } from '../MessageType';
export declare abstract class IrcMessage {
    static deserialize(buf: Buffer): IrcMessageV0;
    abstract type: number;
    abstract serialize(): Buffer;
}
/**
 * IrcMessage contains information for Irc message packet.
 */
export declare class IrcMessageV0 extends IrcMessage {
    static type: MessageType;
    static fromBuffer(buf: Buffer, pubkey: Buffer): IrcMessageV0[];
    static fromString(str: string, pubkey: Buffer): IrcMessageV0[];
    /**
     * Deserializes an irc message
     * @param buf
     */
    static deserialize(buf: Buffer): IrcMessageV0;
    type: MessageType;
    length: bigint;
    sequenceLength: bigint;
    sequenceNumber: bigint;
    checksum: number;
    signature: Buffer;
    pubkey: Buffer;
    timestamp: number;
    data: Buffer;
    serializeWithoutSig(): Buffer;
    /**
     * Serializes the irc_message_v0
     */
    serialize(): Buffer;
}
export declare class IrcMessageWithoutSig {
    readonly sequenceLength: bigint;
    readonly sequenceNumber: bigint;
    readonly checksum: number;
    readonly signature: Buffer;
    readonly pubkey: Buffer;
    readonly data: Buffer;
    constructor(sequenceLength: bigint, sequenceNumber: bigint, checksum: number, signature: Buffer, pubkey: Buffer, data: Buffer);
}
