import { TransactionDTO } from "../../infrastructure/transaction/TransactionDTO";
import { Address } from "../account/Address";
import { MosaicDefinition } from "../mosaic/MosaicDefinition";
import { TimeWindow } from "./TimeWindow";
import { Transaction } from "./Transaction";
/**
 * Before a mosaic can be created or transferred, a corresponding definition of the mosaic has to be created and published to the network.
 * This is done via a mosaic definition creation transaction.
 */
export declare class MosaicDefinitionCreationTransaction extends Transaction {
    /**
     * The fee for the transaction. The higher the fee, the higher the priority of the transaction. Transactions with high priority get included in a block before transactions with lower priority.
     */
    readonly fee: number;
    /**
     * The fee for the creation of the mosaic.
     */
    readonly creationFee: number;
    /**
     * The public account to which the creation fee is tranferred.
     */
    readonly creationFeeSink: Address;
    /**
     * The actual mosaic definition.
     */
    readonly mosaicDefinition: MosaicDefinition;
    /**
     * Create DTO of MosaicDefinitionCreationTransaction
     * @returns {MosaicDefinitionCreationTransactionDTO}
     */
    toDTO(): TransactionDTO;
    /**
     * Create a MosaicDefinitionCreationTransaction object
     * @param timeWindow
     * @param mosaicDefinition
     * @returns {MosaicDefinitionCreationTransaction}
     */
    static create(timeWindow: TimeWindow, mosaicDefinition: MosaicDefinition): MosaicDefinitionCreationTransaction;
}
