49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
import { ICryptoStorageProvider } from "./ICryptoStorageProvider";
|
|
import { IStorageProvider } from "./IStorageProvider";
|
|
/**
|
|
* A storage provider definition for appservices to use.
|
|
* @category Storage providers
|
|
*/
|
|
export interface IAppserviceStorageProvider {
|
|
/**
|
|
* Tracks a user ID as "registered".
|
|
* @returns {Promise<any>|void} Resolves when complete.
|
|
*/
|
|
addRegisteredUser(userId: string): Promise<any> | void;
|
|
/**
|
|
* Determines if a user ID is registered or not.
|
|
* @returns {boolean|Promise<boolean>} True if registered. This may be a promise.
|
|
*/
|
|
isUserRegistered(userId: string): boolean | Promise<boolean>;
|
|
/**
|
|
* Flags a transaction as completed.
|
|
* @param {string} transactionId The transaction ID.
|
|
* @returns {Promise<any>|void} Resolves when complete.
|
|
*/
|
|
setTransactionCompleted(transactionId: string): Promise<any> | void;
|
|
/**
|
|
* Determines if a transaction has been flagged as completed.
|
|
* @param {string} transactionId The transaction ID to check.
|
|
* @returns {boolean} True if the transaction has been completed. This may be a promise.
|
|
*/
|
|
isTransactionCompleted(transactionId: string): boolean | Promise<boolean>;
|
|
/**
|
|
* Gets a storage provider to use for the given user ID.
|
|
* @param {string} userId The user ID.
|
|
* @returns {ICryptoStorageProvider} The storage provider.
|
|
*/
|
|
storageForUser?(userId: string): IStorageProvider;
|
|
}
|
|
/**
|
|
* A storage provider capable of only providing crypto-related storage to appservices.
|
|
* @category Storage providers
|
|
*/
|
|
export interface IAppserviceCryptoStorageProvider {
|
|
/**
|
|
* Gets a storage provider to use for the given user ID.
|
|
* @param {string} userId The user ID.
|
|
* @returns {ICryptoStorageProvider} The storage provider.
|
|
*/
|
|
storageForUser(userId: string): ICryptoStorageProvider;
|
|
}
|