export declare const data = "export class Coin extends Jig implements Fungible {\n /** The number of motos in the Coin. */\n amount: u64;\n\n /**\n * Creates a new Coin instance. Private constructor.\n */\n constructor(amount: u64) {\n super()\n this.amount = amount\n }\n\n /**\n * Sends a specified number of motos, creating a new Coin with the sent amount.\n * Throws an error if the balance is insufficient.\n */\n send(amount: u64): Coin {\n if (this.amount < amount) throw new Error('insufficient balance')\n this.amount -= amount\n return new Coin(amount)\n }\n\n /**\n * Combines the motos from an array of Coins into the current Coin, then burns\n * the other Coins.\n */\n combine(coins: Coin[]): Coin {\n this.amount = coins.reduce((total: u64, c: Coin) => total + c.amount, this.amount)\n coins.forEach((coin: Coin) => coin.burn())\n return this\n }\n\n /**\n * Burns the current Coin by setting its motos to 0 and freezing it.\n */\n protected burn(): void {\n this.amount = 0\n this.$lock.freeze()\n }\n}\n\nexport interface Fungible {\n /** Represents the quantity of the fungible asset. */\n amount: u64;\n\n /**\n * Sends a specified amount of the fungible asset. It returns a new instance\n * of the fungible asset with the sent amount deducted from the current\n * instance.\n */\n send(amount: u64): Fungible;\n\n /**\n * Combines multiple fungible assets into one. It modifies the current\n * instance by adding the balances of the provided fungible assets.\n * The combined fungible asset is returned.\n */\n combine(tokens: Fungible[]): Fungible;\n}\n";