/// <reference types="node" />
import { MessageType } from '../MessageType';
import { IDlcMessage } from './DlcMessage';
export type DlcParty = 'offeror' | 'acceptor' | 'neither';
export declare abstract class OrderPositionInfo {
    static deserialize(buf: Buffer): OrderPositionInfo;
    abstract type: number;
    abstract toJSON(): IOrderPositionInfoJSON;
    abstract serialize(): Buffer;
}
/**
 * OrderCsoInfo message
 */
export declare class OrderPositionInfoV0 extends OrderPositionInfo implements IDlcMessage {
    static type: MessageType;
    /**
     * Deserializes an offer_dlc_v0 message
     * @param buf
     */
    static deserialize(buf: Buffer): OrderPositionInfoV0;
    /**
     * The type for order_metadata_v0 message. order_metadata_v0 = 62774
     */
    type: MessageType;
    length: bigint;
    shiftForFees: DlcParty;
    fees: bigint;
    instrumentName: string | undefined;
    contractSize: bigint;
    direction: 'buy' | 'sell' | 'neither';
    price: bigint;
    extraPrecision: number;
    /**
     * Converts order_metadata_v0 to JSON
     */
    toJSON(): IOrderPositionInfoJSON;
    /**
     * Serializes the oracle_event message into a Buffer
     */
    serialize(): Buffer;
}
export interface IOrderPositionInfoJSON {
    type: number;
    shiftForFees: string;
    fees: number;
    instrumentName: string;
    direction: string;
    price: number;
    extraPrecision: number;
}
