import { EosEntityName, EosPermissionStruct, EosPublicKey, EosActionStruct, EosPermissionSimplified, EosNewKeysOptions, EosGeneratedPermissionKeys, DeletePermissionsParams, ReplacePermissionKeysParams, LinkPermissionsParams, UnlinkPermissionsParams, EosPermission } from './models'; import { EosChainState } from './eosChainState'; export declare class PermissionsHelper { private _chainState; constructor(chainState: EosChainState); /** return a fully formed EOS permission structure (EosPermissionStruct) */ composePermission(publicKeys: EosPublicKey[], permissionName: EosEntityName, parentPermissionName: EosEntityName | '', threshold?: number, weight?: number): EosPermissionStruct; weightPermissionKeys: (keys: EosPublicKey[], weight?: number) => { key: EosPublicKey; weight: number; }[]; /** Compose a collection of actions to add the requested permissions */ composeAddPermissionActions(authAccount: EosEntityName, authPermission: EosEntityName, permissionsToAdd?: Partial[], appendKeyToExistingPermission?: boolean): Promise; composeDeletePermissionActions: (authAccount: EosEntityName, authPermission: EosEntityName, permissionsToDelete?: DeletePermissionsParams[]) => Promise; /** Compose an action to replace public keys on an existing account permission */ composeReplacePermissionKeysAction: (authAccount: EosEntityName, authPermission: EosEntityName, params: ReplacePermissionKeysParams) => Promise; /** Compose a collection of actions to link actions to permissions */ composeLinkPermissionActions: (authAccount: EosEntityName, authPermission: EosEntityName, permissionsToLink?: LinkPermissionsParams[]) => Promise; /** Compose a collection of actions to unlink actions to permissions */ composeUnlinkPermissionActions: (authAccount: EosEntityName, authPermission: EosEntityName, permissionsToUnlink?: UnlinkPermissionsParams[]) => Promise; /** Iterates over the permissions array. * Maps permissions by name, and populates its children * Returns the deepest permission in the tree, starting from the root permission node */ findDeepestPermission: (permissions: EosPermissionStruct[], rootPermission: EosEntityName) => EosPermissionStruct; /** generate a keypair for any new permissions missing a public key */ static generateMissingKeysForPermissionsToAdd: (permissionsToAdd: Partial[], newKeysOptions: EosNewKeysOptions) => Promise<{ generatedKeys: EosGeneratedPermissionKeys[]; permissionsToAdd: Partial[]; }>; /** Convert raw account permissions strucutre to EOSPermission */ static mapPermissionStructToEosPermission: (accountPermissionStruct: EosPermissionStruct) => EosPermission; }