import { Context, FungibleAsset, Namespace } from '../../../../../internal'; import { ActiveTransferRestrictions, AssetStat, ProcedureMethod, SetTransferRestrictionStatParams, TransferRestrictionExemption, TransferRestrictionExemptionParams, TransferRestrictionParams, TransferRestrictionStatValues } from '../../../../../types'; /** * Handles all Transfer Restriction related functionality. */ export declare class TransferRestrictions extends Namespace { /** * @hidden */ constructor(parent: FungibleAsset, context: Context); /** * Get all current restrictions for this asset. */ getRestrictions(): Promise; /** * Return active asset stats. */ getStats(): Promise; /** * @hidden */ private assembleAssetMappings; /** * Process jurisdiction entries and extract jurisdiction values */ private processJurisdictionEntries; /** * Process jurisdiction results and add them to the result array */ private processJurisdictionResults; /** * Get claim type for comparison */ private getClaimTypeForComparison; /** * Process accredited/affiliate claim types */ private processAccreditedAffiliateClaim; /** * Process custom claim types */ private processCustomClaim; /** * Process non-jurisdiction results and add them to the result array */ private processNonJurisdictionResults; /** * Get the values of all active transfer restrictions for this Asset * @returns an array of objects containing the values of all active transfer restrictions for this Asset */ getValues(): Promise; /** * @hidden * Stringify claimType for deduplication key generation */ private stringifyClaimType; /** * @hidden * Build exempt keys map from active restrictions */ private buildExemptKeysFromRestrictions; /** * @hidden * Process exemptions from storage and add to results if not already seen */ private processExemptionsFromStorage; /** * Return identities with exemptions. */ getExemptions(): Promise; /** * Set all Transfer Restrictions on this Asset. * * Transfer Restrictions control ownership requirements based on investor statistics. * For example, TransferRestrictionType.Count can limit the number of investors. * TransferRestrictionType.Percentage can limit the maximum percentage an individual investor may hold. * * @note The relevant stat must be enabled by including it in setStats before the restriction can be created. */ setRestrictions: ProcedureMethod; /** * Set the enabled statistics for an Asset. * * Transfer Restrictions require the relevant stat to be enabled before they can be set. * Calling this method will override the currently enabled stats with the provided set, * which means it can also be used to remove previously enabled stats. * * @note If you attempt to remove a stat that is currently required by an active transfer restriction, * the chain will throw an error. * * @note Count-based stats must be given an initial value. The counter is only updated automatically with each transfer of tokens after the stat has been enabled. * As such, the initial value for the stat should be passed in, which can be fetched with {@link api/entities/Asset/Fungible!FungibleAsset.investorCount | FungibleAsset.investorCount }. */ setStats: ProcedureMethod; /** * Exempt identities from Transfer Restrictions. These identities will not be subject to Transfer Restriction rules. */ addExemptions: ProcedureMethod; /** * Remove identities from Transfer Restriction exemptions. * * The given identities will no longer be exempt from Transfer Restrictions. */ removeExemptions: ProcedureMethod; } //# sourceMappingURL=index.d.ts.map