import { Script, TransactionSegWit, SetLoanScheme, DestroyLoanScheme, SetDefaultLoanScheme, SetCollateralToken, SetLoanToken, UpdateLoanToken, CreateVault, UpdateVault, DepositToVault, WithdrawFromVault, CloseVault, TakeLoan, PaybackLoan, PlaceAuctionBid } from '@muirglacier/jellyfish-transaction';
import { P2WPKHTxnBuilder } from './txn_builder';
export declare class TxnBuilderLoans extends P2WPKHTxnBuilder {
    /**
     * Create or update a loan scheme. Currently requires Foundation Authorization.
     *
     * @param {SetLoanScheme} setLoanScheme txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    setLoanScheme(setLoanScheme: SetLoanScheme, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Destroy a loan scheme. Currently requires Foundation Authorization.
     *
     * @param {DestroyLoanScheme} destroyLoanScheme txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    destroyLoanScheme(destroyLoanScheme: DestroyLoanScheme, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Set default loan scheme. Currently requires Foundation Authorization.
     *
     * @param {SetDefaultLoanScheme} setDefaultLoanScheme txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    setDefaultLoanScheme(setDefaultLoanScheme: SetDefaultLoanScheme, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Set a collateral token. Currently requires Foundation Authorization.
     *
     * @param {SetCollateralToken} setCollateralToken txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    setCollateralToken(setCollateralToken: SetCollateralToken, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Set loan token. Currently requires Foundation Authorization.
     *
     * @param {SetLoanToken} setLoanToken txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    setLoanToken(setLoanToken: SetLoanToken, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Update loan token. Currently requires Foundation Authorization.
     *
     * @param {UpdateLoanToken} updateLoanToken txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    updateLoanToken(updateLoanToken: UpdateLoanToken, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Creates vault transaction.
     *
     * @param {CreateVault} createVault txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    createVault(createVault: CreateVault, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Create update vault transaction.
     *
     * @param {UpdateVault} updateVault txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    updateVault(updateVault: UpdateVault, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Deposit to vault transaction.
     *
     * @param {DepositToVault} depositToVault txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    depositToVault(depositToVault: DepositToVault, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Withdraw from vault transaction.
     *
     * @param {withdrawFromVault} withdrawFromVault txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    withdrawFromVault(withdrawFromVault: WithdrawFromVault, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Close a vault.
     *
     * @param {CloseVault} closeVault txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    closeVault(closeVault: CloseVault, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * Take loan transaction.
     *
     * @param {TakeLoan} takeLoan txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    takeLoan(takeLoan: TakeLoan, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * PaybackLoan to vault transaction.
     *
     * @param {PaybackLoan} paybackLoan txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    paybackLoan(paybackLoan: PaybackLoan, changeScript: Script): Promise<TransactionSegWit>;
    /**
     * placeAuctionBid transaction.
     *
     * @param {PlaceAuctionBid} placeAuctionBid txn to create
     * @param {Script} changeScript to send unspent to after deducting the (converted + fees)
     * @returns {Promise<TransactionSegWit>}
     */
    placeAuctionBid(placeAuctionBid: PlaceAuctionBid, changeScript: Script): Promise<TransactionSegWit>;
}
//# sourceMappingURL=txn_builder_loans.d.ts.map