import BigNumber from 'bignumber.js'; import { Asset, AuthorizationRequest, Context, CreateGroupParams, CustomPermissionGroup, InviteExternalAgentParams, KnownPermissionGroup, Namespace, RemoveExternalAgentParams } from "../../../internal"; import { AgentWithGroup, PermissionGroups, PermissionGroupType, ProcedureMethod } from "../../../types"; /** * Handles all Asset Permissions related functionality */ export declare class Permissions extends Namespace { /** * @hidden */ constructor(parent: Asset, context: Context); /** * Create a Permission Group for this Asset. Identities can be assigned to Permission Groups as agents. Agents assigned to a Permission Group have said group's permissions over the Asset */ createGroup: ProcedureMethod; /** * Invite an Identity to be an agent with permissions over this Asset * * @note this will create an {@link AuthorizationRequest | Authorization Request} which has to be accepted by the `target` Identity. * An {@link Account} or {@link Identity} can fetch its pending Authorization Requests by calling {@link Authorizations.getReceived | authorizations.getReceived}. * Also, an Account or Identity can directly fetch the details of an Authorization Request by calling {@link Authorizations.getOne | authorizations.getOne} */ inviteAgent: ProcedureMethod; /** * Revoke an agent's permissions over this Asset */ removeAgent: ProcedureMethod; /** * Retrieve a single Permission Group by its ID (or type). Passing an ID will fetch a Custom Permission Group, * while passing a type will fetch a Known Permission Group * * @throws if there is no Permission Group with the passed ID */ getGroup(args: { id: BigNumber; }): Promise; getGroup(args: { type: PermissionGroupType; }): Promise; /** * Retrieve all Permission Groups of this Asset */ getGroups(): Promise; /** * Retrieve a list of agents (Identities which have permissions over the Asset) and * their respective Permission Groups */ getAgents(): Promise; } //# sourceMappingURL=Permissions.d.ts.map