import * as BN from "../bn.js";
export declare type SignerConfig = {
    satotxApiPrefix: string;
    satotxPubKey: string;
};
/**
 * 签名器API
 * https://github.com/sensible-contract/satotx
 */
export declare class SatotxSigner {
    satotxApiPrefix?: string;
    satotxPubKey?: BN;
    constructor(satotxApiPrefix?: string, satotxPubKey?: string);
    getInfo(): Promise<{
        pubKey: string;
    }>;
    /**
     * @param {Object} satotxData
     * @param {number} satotxData.index utxo的vout
     * @param {Sha256} satotxData.txId 产生utxo的txid
     * @param {String} satotxData.txHex 产生utxo的rawtx
     * @param {Sha256} satotxData.byTxId 花费此utxo的txid
     * @param {String} satotxData.byTxHex 花费此utxo的rawtx
     */
    satoTxSigUTXOSpendBy({ index, txId, txHex, byTxId, byTxHex, }: {
        index: number;
        txId: string;
        txHex: string;
        byTxId: string;
        byTxHex: string;
    }): Promise<{
        txId: string;
        index: number;
        byTxId: string;
        sigBE: string;
        sigLE: string;
        padding: string;
        payload: string;
    }>;
    /**
     * @param {Object} satotxData
     * @param {number} satotxData.index utxo的vout
     * @param {Sha256} satotxData.txId 产生utxo的txid
     * @param {String} satotxData.txHex 产生utxo的rawtx
     */
    satoTxSigUTXO({ index, txId, txHex, }: {
        index: number;
        txId: string;
        txHex: string;
    }): Promise<{
        txId: string;
        index: number;
        byTxId: string;
        sigBE: string;
        sigLE: string;
        padding: string;
        payload: string;
    }>;
    satoTxSigUTXOSpendByUTXO({ index, txId, txHex, byTxIndex, byTxId, byTxHex, }: {
        index: number;
        txId: string;
        txHex: string;
        byTxIndex: number;
        byTxId: string;
        byTxHex: string;
    }): Promise<{
        txId: string;
        index: number;
        sigBE: string;
        sigLE: string;
        padding: string;
        payload: string;
        byTxId: string;
        byTxIndex: number;
        byTxSigBE: string;
        byTxSigLE: string;
        byTxPadding: string;
        byTxPayload: string;
        byTxScript: string;
    }>;
}
