/// <reference types="node" />
import { MessageType } from '../MessageType';
import { IDlcMessage } from './DlcMessage';
export declare abstract class OrderMetadata {
    static deserialize(buf: Buffer): OrderMetadata;
    abstract type: number;
    abstract toJSON(): IOrderMetadataJSON;
    abstract serialize(): Buffer;
}
/**
 * OrderMetadata message contains information about a node and indicates its
 * desire to enter into a new contract. This is the first step toward
 * order negotiation.
 */
export declare class OrderMetadataV0 extends OrderMetadata implements IDlcMessage {
    static type: MessageType;
    /**
     * Deserializes an offer_dlc_v0 message
     * @param buf
     */
    static deserialize(buf: Buffer): OrderMetadataV0;
    /**
     * The type for order_metadata_v0 message. order_metadata_v0 = 62774
     */
    type: MessageType;
    length: bigint;
    /**
     * offerId is a unique identifier for an offer
     * It can be used for updating liquidity for a particular category
     * For example, how much liquidity is remaining for a particular strategy
     * which a market maker is providing liquidity for
     */
    offerId: string;
    /**
     * Timestamp for order creation
     */
    createdAt: number;
    /**
     * Amount of time order is good untill
     */
    goodTill: number;
    /**
     * Converts order_metadata_v0 to JSON
     */
    toJSON(): IOrderMetadataJSON;
    /**
     * Serializes the oracle_event message into a Buffer
     */
    serialize(): Buffer;
}
export interface IOrderMetadataJSON {
    type: number;
    offerId: string;
    createdAt: number;
    goodTill: number;
}
