import { Observable } from 'rxjs'; import { AccountNames } from '../model/account/AccountNames'; import { Address } from '../model/account/Address'; import { MosaicId } from '../model/mosaic/MosaicId'; import { MosaicNames } from '../model/mosaic/MosaicNames'; import { NamespaceId } from '../model/namespace/NamespaceId'; import { NamespaceInfo } from '../model/namespace/NamespaceInfo'; import { NamespaceName } from '../model/namespace/NamespaceName'; import { QueryParams } from './QueryParams'; /** * Namespace interface repository. * * @since 1.0 */ export interface NamespaceRepository { /** * Get readable names for a set of accountIds. * Returns friendly names for accounts. * @param accountIds List of Address - * Address can be created rawAddress or publicKey * @return Observable */ getAccountsNames(accountIds: Address[]): Observable; /** * Get readable names for a set of mosaics * Returns friendly names for mosaics. * @param mosaicIds - Array of mosaic ids * @return Observable */ getMosaicsNames(mosaicIds: MosaicId[]): Observable; /** * Gets the NamespaceInfo for a given namespaceId * @param namespaceId - Namespace id * @returns Observable */ getNamespace(namespaceId: NamespaceId): Observable; /** * Gets array of NamespaceInfo for an account * @param address - Address * @param queryParams - (Optional) Query params * @returns Observable */ getNamespacesFromAccount(address: Address, queryParams?: QueryParams): Observable; /** * Gets array of NamespaceInfo for different account * @param addresses - Array of Address * @param queryParams - (Optional) Query params * @returns Observable */ getNamespacesFromAccounts(addresses: Address[], queryParams?: QueryParams): Observable; /** * Gets array of NamespaceName for different namespaceIds * @param namespaceIds - Array of namespace ids * @returns Observable */ getNamespacesName(namespaceIds: NamespaceId[]): Observable; /** * Gets the MosaicId from a MosaicAlias * @param namespaceId - the namespaceId of the namespace * @returns Observable */ getLinkedMosaicId(namespaceId: NamespaceId): Observable; /** * Gets the Address from a AddressAlias * @param namespaceId - the namespaceId of the namespace * @returnsObservable
*/ getLinkedAddress(namespaceId: NamespaceId): Observable
; }