import BigNumber from 'bignumber.js'; import { Account, Context, DecreaseAllowanceParams, Entity, IncreaseAllowanceParams, SetAllowanceParams } from "../../../internal"; import { NoArgsProcedureMethod, ProcedureMethod } from "../../../types"; export interface UniqueIdentifiers { /** * beneficiary address */ beneficiary: string; /** * subsidizer address */ subsidizer: string; } declare type HumanReadable = UniqueIdentifiers; /** * Represents a Subsidy relationship on chain */ export declare class Subsidy extends Entity { /** * @hidden * Check if a value is of type {@link UniqueIdentifiers} */ static isUniqueIdentifiers(identifier: unknown): identifier is UniqueIdentifiers; /** * Account whose transactions are being paid for */ beneficiary: Account; /** * Account that is paying for the transactions */ subsidizer: Account; /** * @hidden */ constructor(identifiers: UniqueIdentifiers, context: Context); /** * Terminate this Subsidy relationship. The beneficiary Account will be forced to pay for their own transactions * * @note both the beneficiary and the subsidizer are allowed to unilaterally quit the Subsidy */ quit: NoArgsProcedureMethod; /** * Set allowance for this Subsidy relationship * * @note Only the subsidizer is allowed to set the allowance * * @throws if the allowance to set is equal to the current allowance */ setAllowance: ProcedureMethod, void>; /** * Increase allowance for this Subsidy relationship * * @note Only the subsidizer is allowed to increase the allowance */ increaseAllowance: ProcedureMethod, void>; /** * Decrease allowance for this Subsidy relationship * * @note Only the subsidizer is allowed to decrease the allowance * * @throws if the amount to decrease by is more than the existing allowance */ decreaseAllowance: ProcedureMethod, void>; /** * Determine whether this Subsidy relationship exists on chain */ exists(): Promise; /** * Get amount of POLYX subsidized for this Subsidy relationship * * @throws if the Subsidy does not exist */ getAllowance(): Promise; /** * Return the Subsidy's static data */ toJson(): HumanReadable; } export {}; //# sourceMappingURL=index.d.ts.map