@microsoft/useragent-sdk
Version:
SDK for building decentralized identity wallets and enterprise agents.
56 lines (55 loc) • 2.08 kB
TypeScript
import Identifier from '../Identifier';
import Commit from '../hubSession/Commit';
import HubObjectQueryRequest from '../hubSession/requests/HubObjectQueryRequest';
import HubCommitQueryRequest from '../hubSession/requests/HubCommitQueryRequest';
import ProtectionStrategy from '../crypto/strategies/ProtectionStrategy';
import { CryptoOptions, HubObject, PublicKey } from '..';
/**
* Class for defining options for the
* HubClient, such as hub Identifier and client Identifier.
*/
export declare class HubClientOptions {
/**
* The Identifier of the owner of the hub.
*/
hubOwner: Identifier | undefined;
/**
* The Identifier of the Client that wants to start hub session.
*/
clientIdentifier: Identifier | undefined;
/**
* The public keys used for encrypting the payload
*/
recipientsPublicKeys: PublicKey[] | undefined;
/**
* Defines the protection strategy that will be used to protect the commit.
*/
hubProtectionStrategy: ProtectionStrategy | undefined;
/**
* Crypto Options
* contains algorithm and other data about crypto
*/
cryptoOptions: CryptoOptions;
}
/**
* Interface for HubClient class that manages which hub instance to create hub session with
* And commits and queries for objects in the hub session.
*/
export default interface IHubClient {
/**
* Signs and sends a commit to the hub owner's hub.
* @param commit
*/
commit(commit: Commit): Promise<any>;
/**
* Query Objects of certain type in Hub.
* @param queryRequest object that tells the hub what object to get.
*/
queryObjects(queryRequest: HubObjectQueryRequest): Promise<HubObject[]>;
/**
* Query Object specified by certain id
* @param commitQueryRequest HubCommitQueryRequest object to request object of specific id.
* @param hubObject a HubObject containing metadata such as object id.
*/
queryObject(commitQueryRequest: HubCommitQueryRequest, hubObject: HubObject): Promise<HubObject>;
}