/// <reference types="node" />
import { StreamReader } from '@node-dlc/bufio';
import { HashValue } from './HashValue';
import { ICloneable } from './ICloneable';
/**
 * A tuple defining a transaction output which contains the transaction
 * identifier and the output index.
 */
export declare class OutPoint implements ICloneable<OutPoint> {
    /**
     * Creates an OutPoint from a byte stream.
     * @param reader
     */
    static parse(reader: StreamReader): OutPoint;
    /**
     * Creates an OutPoint instance from an Outpoint serialized
     * to the standard string of "txid:vout" where the txid is in RPC
     * (reversed) byte order
     */
    static fromString(text: string): OutPoint;
    /**
     * Transaction identifier
     */
    txid: HashValue;
    /**
     * Index of output in transaction
     */
    outputIndex: number;
    /**
     * Constructs a new OutPoint
     * @param txid TxId as a HashValue or an RPC (big-endian) string
     * @param outputIndex
     */
    constructor(txid: HashValue | string, outputIndex: number);
    /**
     * Converts the outpoint to a human readable string in the format
     * [txid]:[voutidx]
     */
    toString(): string;
    /**
     * Converts the outpoint to a JSON object with the txid and index
     * tuple
     */
    toJSON(): {
        txid: string;
        index: number;
    };
    /**
     * Serializes the OutPoint to a buffer where the txid is serialized
     * in internal byte order, and the output index is uint32LE
     */
    serialize(): Buffer;
    /**
     * Clones by performing deep copy
     */
    clone(): OutPoint;
}
