/// <reference types="node" />
import { Value } from '@node-dlc/bitcoin';
import { MessageType } from '../MessageType';
import { IDlcMessage } from './DlcMessage';
/**
 * The BatchFundingGroup TLV contains information about the intent to
 * enter multiple DLCs simulatenously within one batch dlc funding
 * transaction in the contract negotiation stage of the peer protocol
 *
 * This is the first step toward creating a batch dlc funding transaction
 *
 * A DlcOffer or DlcAccept can contain one or multiple BatchFundingInfo
 * TLVs to specify one or more groupings. This allows specification of
 * collateral put towards different types of contracts, such as options
 * contracts, futures contracts, or other investment types.
 *
 * Attributes:
 * - tempContractIds: Temporary identifiers for contracts proposed in DlcOffers.
 * - contractIds: Identifiers for contracts that have been accepted and are
 *   part of the funding transaction. These are derived from DlcOffers and DlcAccepts.
 * - allocatedCollateral: The amount of collateral allocated to the contracts
 *   within this group. This is specified early in the negotiation process.
 * - eventIds: Oracle event identifiers for the contracts in this group. These
 *   are also specified early in the negotiation process.
 *
 * Note: During the early stages of the negotiation protocol, only allocatedCollateral
 * and eventIds are specified. tempContractIds and contractIds are added to the
 * DlcAccept upon creation.
 */
export declare class BatchFundingGroup implements IDlcMessage {
    static type: MessageType;
    /**
     * Deserializes a batch_contract_info message
     * @param buf
     */
    static deserialize(buf: Buffer): BatchFundingGroup;
    /**
     * The type for batch_contract_info message.
     */
    type: MessageType;
    length: bigint;
    tempContractIds: Buffer[];
    contractIds: Buffer[];
    allocatedCollateral: Value;
    eventIds: string[];
    /**
     * Converts batch_funding_info to JSON
     */
    toJSON(): IBatchFundingGroupJSON;
    /**
     * Serializes the batch_funding_info message into a Buffer
     */
    serialize(): Buffer;
}
export interface IBatchFundingGroupJSON {
    type: number;
    tempContractIds: string[];
    contractIds: string[];
    totalCollateral: number;
    eventIds: string[];
}
