import BigNumber from 'bignumber.js';
import { Asset, Namespace } from "../../../internal";
import { PortfolioLike, TransferBreakdown, TransferStatus } from "../../../types";
/**
 * Handles all Asset Settlements related functionality
 */
export declare class Settlements extends Namespace<Asset> {
    /**
     * Check whether it is possible to create a settlement Instruction to transfer a certain amount of this Asset's tokens between two Portfolios.
     *
     * @note this takes locked tokens into account. For example, if portfolio A has 1000 tokens and this function is called to check if 700 of them can be
     *   transferred to portfolio B (assuming everything else checks out) the result will be success. If an instruction is created and authorized to transfer those 700 tokens,
     *   they would become locked. From that point, further calls to this function would yield failed results because of the funds being locked, even though they haven't been
     *   transferred yet
     *
     * @param args.from - sender Portfolio (optional, defaults to the signing Identity's Default Portfolio)
     * @param args.to - receiver Portfolio
     * @param args.amount - amount of tokens to transfer
     *
     * @deprecated in favor of [[canTransfer]]
     */
    canSettle(args: {
        from?: PortfolioLike;
        to: PortfolioLike;
        amount: BigNumber;
    }): Promise<TransferStatus>;
    /**
     * Check whether it is possible to create a settlement instruction to transfer a certain amount of this asset between two Portfolios. Returns a breakdown of
     *   the transaction containing general errors (such as insufficient balance or invalid receiver), any broken transfer restrictions, and any compliance
     *   failures
     *
     * @note this takes locked tokens into account. For example, if portfolio A has 1000 tokens and this function is called to check if 700 of them can be
     *   transferred to portfolio B (assuming everything else checks out) the result will be success. If an instruction is created and authorized to transfer those 700 tokens,
     *   they would become locked. From that point, further calls to this function would yield failed results because of the funds being locked, even though they haven't been
     *   transferred yet
     *
     * @param args.from - sender Portfolio (optional, defaults to the signing Identity's Default Portfolio)
     * @param args.to - receiver Portfolio
     * @param args.amount - amount of tokens to transfer
     *
     */
    canTransfer(args: {
        from?: PortfolioLike;
        to: PortfolioLike;
        amount: BigNumber;
    }): Promise<TransferBreakdown>;
}
//# sourceMappingURL=Settlements.d.ts.map