/// <reference types="node" />
import { MessageType } from '../MessageType';
import { IDlcMessage } from './DlcMessage';
import { IOrderNegotiationFieldsV0JSON, IOrderNegotiationFieldsV1JSON, OrderNegotiationFields } from './OrderNegotiationFields';
export declare abstract class OrderAccept {
    static deserialize(buf: Buffer): OrderAccept;
    abstract type: number;
    abstract toJSON(): IOrderAcceptV0JSON;
    abstract serialize(): Buffer;
}
/**
 * OrderAccept contains information about a node and indicates its
 * acceptance of the new order offer. This is the second step towards
 * order negotiation.
 */
export declare class OrderAcceptV0 extends OrderAccept implements IDlcMessage {
    static type: MessageType;
    /**
     * Deserializes an order_accept_v0 message
     * @param buf
     */
    static deserialize(buf: Buffer): OrderAcceptV0;
    /**
     * The type for order_accept_v0 message. order_accept_v0 = 62772
     */
    type: MessageType;
    tempOrderId: Buffer;
    negotiationFields: OrderNegotiationFields;
    /**
     * Converts order_negotiation_fields_v0 to JSON
     */
    toJSON(): IOrderAcceptV0JSON;
    /**
     * Serializes the order_accept_v0 message into a Buffer
     */
    serialize(): Buffer;
}
export interface IOrderAcceptV0JSON {
    type: number;
    tempOrderId: string;
    negotiationFields: IOrderNegotiationFieldsV0JSON | IOrderNegotiationFieldsV1JSON;
}
export declare class OrderAcceptContainer {
    private accepts;
    /**
     * Adds an OrderAccept to the container.
     * @param accept The OrderAccept to add.
     */
    addAccept(accept: OrderAccept): void;
    /**
     * Returns all OrderAccepts in the container.
     * @returns An array of OrderAccept instances.
     */
    getAccepts(): OrderAccept[];
    /**
     * Serializes all OrderAccepts in the container to a Buffer.
     * @returns A Buffer containing the serialized OrderAccepts.
     */
    serialize(): Buffer;
    /**
     * Deserializes a Buffer into an OrderAcceptContainer with OrderAccepts.
     * @param buf The Buffer to deserialize.
     * @returns An OrderAcceptContainer instance.
     */
    static deserialize(buf: Buffer): OrderAcceptContainer;
}
