import { BaseAsset, Context, Namespace } from '../../../../../internal'; import { AddAssetRequirementParams, ComplianceRequirements, ModifyComplianceRequirementParams, NoArgsProcedureMethod, ProcedureMethod, RemoveAssetRequirementParams, SetAssetRequirementsParams, SubCallback, UnsubCallback } from '../../../../../types'; /** * Handles all Asset Compliance Requirements related functionality */ export declare class Requirements extends Namespace { /** * @hidden */ constructor(parent: BaseAsset, 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 * * @returns Promise that resolves to the compliance requirements and trusted claim issuers */ get(): Promise; /** * Retrieve all of the Asset's compliance requirements, together with the Default Trusted Claim Issuers * * @param callback - Callback function that receives compliance requirements updates * * @note can be subscribed to, if connected to node using a web socket * @returns Promise that resolves to an unsubscribe function */ 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 Asset compliance requirements are paused or not */ arePaused(): Promise; /** * Modify a compliance requirement for the Asset */ modify: ProcedureMethod; } //# sourceMappingURL=Requirements.d.ts.map