import { IAssetItem, IAssetToken, ICreateTxIn, ICreateTxPayload, IFetchBalanceResponse, IKeypair, IOutPoint, IResult, ITxOut, Script } from '../interfaces';
/**
 * Constructs a signature used in P2PKH script
 *
 * @export
 * @param {Uint8Array} signableData
 * @param {Uint8Array} secretKey
 * @return {*}  {string}
 */
export declare function constructSignature(signableData: Uint8Array, secretKey: Uint8Array): IResult<string>;
/**
 * Constructs signable data from previous OutPoint for P2PKH script
 *
 * @export
 * @param {IOutPoint} outPoint - Previous `OutPoint`
 * @return {*}  {string}
 */
export declare function constructTxInSignableData(outPoint: IOutPoint | null): string | null;
/**
 * Gets OutPoint formatted as a string
 *
 * @export
 * @param {(IOutPoint | null)} outPoint
 * @return {*}  {(string | null)}
 */
export declare function getFormattedOutPointString(outPoint: IOutPoint | null): string | null;
/**
 * Generates a new 32 byte DRUID
 *
 * @returns {string}
 */
export declare function generateDRUID(): IResult<string>;
/**
 * Formats script data for "from" address creation
 *
 * @export
 * @return {*}  {string}
 * @param script - `Script` value
 */
export declare function getFormattedScriptString(script: Script): string;
/**
 * Gets "from" address used in 2 way transaction values
 *
 * @export
 * @param {ICreateTxIn[]} txIns - Transaction inputs
 * @return {*}  {string}
 */
export declare function constructTxInsAddress(txIns: ICreateTxIn[]): IResult<string>;
export declare function constructTxInSignableAssetHash(asset: IAssetToken | IAssetItem): string;
/** Construct a signable hash for a transaction using both the inputs and outputs of the transaction
 *
 * @param txIn - Transaction input
 * @param txOuts - Transaction outputs
 * @returns {string} - Signable hash
 */
export declare function constructTxInOutSignableHash(txIn: IOutPoint | null, txOuts: ITxOut[]): string;
/**
 * Updates the signatures of the transaction given the available outputs
 *
 * @param transaction - Transaction to update
 * @param fetchBalanceResponse - Response from fetch balance
 * @param allKeypairs - All keypairs
 * @returns
 */
export declare function updateSignatures(transaction: ICreateTxPayload, fetchBalanceResponse: IFetchBalanceResponse, allKeypairs: Map<string, IKeypair>): import("neverthrow").Ok<ICreateTxPayload, never>;
/**
 * Gets the address of the outpoint that matches the transaction hash of the input
 *
 * @param fetchBalanceResponse - Response from fetch balance
 * @param t_hash - Transaction hash
 * @returns
 */
export declare function getAddressFromFetchBalanceResponse(fetchBalanceResponse: IFetchBalanceResponse, t_hash: string): string;
/**
 * Construct a Pay-to-Public-Key-Hash script
 *
 * @export
 * @param {string} checkData - Data to check
 * @param {string} signatureData - Signature
 * @param {string} publicKeyData - Public key
 * @param {(number | null)} addressVersion - Address version
 * @return {*}  {IResult<Script>}
 */
export declare function p2pkh(checkData: string, signatureData: string, publicKeyData: string, addressVersion: number | null): IResult<Script>;
