/// <reference types="node" />
import { EnumeratedDescriptor, NumericalDescriptor } from './ContractDescriptor';
import { DisjointContractInfo, IContractInfoV0JSON, IContractInfoV1JSON, SingleContractInfo } from './ContractInfo';
import { DlcAccept } from './DlcAccept';
import { DlcClose } from './DlcClose';
import { DlcOffer } from './DlcOffer';
import { DlcSign } from './DlcSign';
import { NodeAnnouncementMessage } from './NodeAnnouncementMessage';
import { OracleAnnouncement } from './OracleAnnouncement';
import { OracleAttestation } from './OracleAttestation';
import { OrderAccept } from './OrderAccept';
import { OrderOffer } from './OrderOffer';
export interface IDlcMessage {
    type: number;
    serialize(): Buffer;
}
export type ContractInfoV0JSON = IContractInfoV0JSON;
export type ContractInfoV1JSON = IContractInfoV1JSON;
export declare abstract class DlcMessage {
    static deserialize(buf: Buffer): EnumeratedDescriptor | NumericalDescriptor | SingleContractInfo | DisjointContractInfo | OrderOffer | OrderAccept | DlcOffer | DlcAccept | DlcSign | DlcClose | OracleAttestation | OracleAnnouncement | NodeAnnouncementMessage;
    abstract type: number;
    abstract serialize(): Buffer;
}
