/// <reference types="node" />
import { MessageType } from '../MessageType';
import { IDlcMessage } from './DlcMessage';
/**
 * DlcInput contains information about a DLC input to be used in a funding transaction.
 * Contains the local and remote funding public keys and the contract ID of the DLC input.
 * Matches rust-dlc DlcInput struct.
 */
export declare class DlcInput implements IDlcMessage {
    static type: MessageType;
    /**
     * Creates a DlcInput from JSON data
     * @param json JSON object representing DLC input
     */
    static fromJSON(json: any): DlcInput;
    /**
     * Deserializes a dlc_input message
     * @param buf
     */
    static deserialize(buf: Buffer): DlcInput;
    /**
     * Deserializes a dlc_input without TLV wrapper (for use in FundingInput)
     * @param buf
     */
    static deserializeBody(buf: Buffer): DlcInput;
    /**
     * The type for dlc_input message. dlc_input = 42773
     */
    type: MessageType;
    length: bigint;
    localFundPubkey: Buffer;
    remoteFundPubkey: Buffer;
    contractId: Buffer;
    /**
     * Validates correctness of all fields
     * @throws Will throw an error if validation fails
     */
    validate(): void;
    /**
     * Converts dlc_input to JSON
     */
    toJSON(): IDlcInputJSON;
    /**
     * Serializes the dlc_input message into a Buffer
     */
    serialize(): Buffer;
    /**
     * Serializes dlc_input body without TLV wrapper (for embedding in FundingInput)
     */
    serializeBody(): Buffer;
}
export interface IDlcInputJSON {
    localFundPubkey: string;
    remoteFundPubkey: string;
    contractId: string;
}
