import { MosaicDefinition, MosaicProperties } from "./MosaicDefinition";
import { MosaicId } from "./MosaicId";
import { MosaicLevy } from "./MosaicLevy";
/**
 * Mosaic transferable model
 */
export declare class MosaicTransferable {
    /**
     * Create a MosaicTransferable object with mosaic definition
     * @param mosaicDefinition
     * @param amount
     * @returns {MosaicTransferable}
     */
    static createWithMosaicDefinition(mosaicDefinition: MosaicDefinition, amount: number): MosaicTransferable;
    /**
     * Create MosaicTransferable with an absolute quantity
     * @param mosaicId
     * @param properties
     * @param quantity
     * @param levy
     * @returns {MosaicTransferable}
     */
    static createAbsolute(mosaicId: MosaicId, properties: MosaicProperties, quantity: number, levy?: MosaicLevy): MosaicTransferable;
    /**
     * Create MosaicTransferable with an relative quantity
     * @param mosaicId
     * @param properties
     * @param quantity
     * @param levy
     * @returns {MosaicTransferable}
     */
    static createRelative(mosaicId: MosaicId, properties: MosaicProperties, quantity: number, levy?: MosaicLevy): MosaicTransferable;
    /**
     * MosaicId
     */
    readonly mosaicId: MosaicId;
    /**
     * Amount
     */
    readonly quantity: number;
    /**
     * Mosaic definition properties
     */
    readonly properties: MosaicProperties;
    /**
     * Levy
     */
    readonly levy?: MosaicLevy;
    /**
     * constructor
     * @param mosaicId
     * @param properties
     * @param quantity
     * @param levy
     */
    constructor(mosaicId: MosaicId, properties: MosaicProperties, quantity: number, levy?: MosaicLevy);
    /**
     * @returns {number}
     */
    relativeQuantity(): number;
    /**
     * @returns {number}
     */
    absoluteQuantity(): number;
}
