import { AddAssetRequirementParams, Asset, Context, Identity, ModifyComplianceRequirementParams, Namespace, RemoveAssetRequirementParams, SetAssetRequirementsParams } from "../../../../internal"; import { Compliance, ComplianceRequirements, NoArgsProcedureMethod, ProcedureMethod, SubCallback, UnsubCallback } from "../../../../types"; /** * Handles all Asset Compliance Requirements related functionality */ export declare class Requirements extends Namespace { /** * @hidden */ constructor(parent: Asset, context: Context); /** * Add a new compliance requirement to the the Asset. This doesn't modify existing requirements */ add: ProcedureMethod; /** * Remove an existing compliance requirement from the Asset */ remove: ProcedureMethod; /** * Configure compliance requirements for the Asset. This operation will replace all existing requirements with a new requirement set * * @example Say A, B, C, D and E are requirements and we arrange them as `[[A, B], [C, D], [E]]`. * For a transfer to succeed, it must either comply with A AND B, C AND D, OR E. */ set: ProcedureMethod; /** * Retrieve all of the Asset's compliance requirements, together with the Default Trusted Claim Issuers * * @note can be subscribed to */ get(): Promise; get(callback: SubCallback): Promise; /** * Delete all the current requirements for the Asset. */ reset: NoArgsProcedureMethod; /** * Pause all the Asset's requirements. This means that all transfers will be allowed until requirements are unpaused */ pause: NoArgsProcedureMethod; /** * Un-pause all the Asset's current requirements */ unpause: NoArgsProcedureMethod; /** * Check whether the sender and receiver Identities in a transfer comply with all the requirements of this Asset * * @note this does not take balances into account * * @param args.from - sender Identity (optional, defaults to the signing Identity) * @param args.to - receiver Identity * * @deprecated in favor of `settlements.canTransfer` */ checkSettle(args: { from?: string | Identity; to: string | Identity; }): Promise; /** * Check whether Asset compliance requirements are paused or not */ arePaused(): Promise; /** * Modify a compliance requirement for the Asset */ modify: ProcedureMethod; } //# sourceMappingURL=Requirements.d.ts.map