import { BigNumber } from 'ethers'; import { IDIDDocument, DIDAttribute, IUpdateData, DelegateTypes, IPublicKey, IServiceEndpoint, IAuthentication, PubKeyType, DocumentSelector, IDIDLogData, } from './models'; export interface IResolver { /** * Constructor takes keys and resolver settings to create a new Resolver * constructor(settings?: IResolverSettings); * * Private members: * settings; */ /** * Read method resolves the DID Document for the provided DID. * Should not be confused with “read” method in DID Document Lite, * which returns the required attribute from the DID Document. * * @param {string} did * @returns {Promise} */ read(did: string): Promise; /** * Returns the current owner for certain DID. * If DID document has not been created, did will be identical to address. * After creation DID owner can be changed. * * @param {string} did * @returns {Promise} */ identityOwner(did: string): Promise; /** * Checks if the delegate is present for a particular DID. * Returns boolean. * * @param {string} identityDID * @param {DelegateTypes} delegateType * @param {string} delegateDID * @returns {Promise} */ validDelegate( identityDID: string, delegateType: DelegateTypes, delegateDID: string ): Promise; readAttribute( did: string, selector: DocumentSelector, ): Promise; readOwnerPubKey(did: string): Promise; /** * Reads events starting from specified block * * @param block {number} - block to start reading from * * @returns - part of document along with last read block */ readFromBlock(did: string, topBlock: BigNumber, ): Promise; lastBlock(did: string): Promise; } export interface IOperator extends IResolver { /** * Registers a DID-Document for a given DID, and defines the provided context. * * @param {string} did * @param {string} context * @returns {boolean} */ create(): Promise; /** * Updates relevant attribute of the DID Document. * * @param {string} did * @param { DIDAttribute } attribute * @param { IUpdateData } value * @param { number } validity * @returns {boolean} */ update( did: string, attribute: DIDAttribute, value: IUpdateData, validity?: number | BigNumber ): Promise; /** * Attempts to deactivate the DID Document for a given DID. * Successful, if the transaction is accepted by the smart contract. * Deactivation should be done by the owner of DID. * * @param {string} did * @returns {boolean} */ deactivate(did: string): Promise; revokeDelegate(did: string, delegateType: PubKeyType, delegateDID: string): Promise; revokeAttribute( did: string, attributeType: DIDAttribute, updateData: IUpdateData ): Promise; }