import { Observable } from 'rxjs'; import { Address } from '../model/account/Address'; import { Metadata } from '../model/metadata/Metadata'; import { MosaicId } from '../model/mosaic/MosaicId'; import { NamespaceId } from '../model/namespace/NamespaceId'; import { QueryParams } from './QueryParams'; /** * Metadata interface repository. * * @since 1.0 */ export interface MetadataRepository { /** * Returns the account metadata given an account id. * @param address - Account address to be created from PublicKey or RawAddress * @param queryParams - Optional query parameters * @returns Observable */ getAccountMetadata(address: Address, queryParams?: QueryParams): Observable; /** * Returns the account metadata given an account id and a key * @param address - Account address to be created from PublicKey or RawAddress * @param key - Metadata key * @returns Observable */ getAccountMetadataByKey(address: Address, key: string): Observable; /** * Returns the account metadata given an account id and a key * @param address - Account address to be created from PublicKey or RawAddress * @param key - Metadata key * @param publicKey - Sender public key * @returns Observable */ getAccountMetadataByKeyAndSender(address: Address, key: string, publicKey: string): Observable; /** * Returns the mosaic metadata given a mosaic id. * @param mosaicId - Mosaic identifier. * @param queryParams - Optional query parameters * @returns Observable */ getMosaicMetadata(mosaicId: MosaicId, queryParams?: QueryParams): Observable; /** * Returns the mosaic metadata given a mosaic id and metadata key. * @param mosaicId - Mosaic identifier. * @param key - Metadata key. * @returns Observable */ getMosaicMetadataByKey(mosaicId: MosaicId, key: string): Observable; /** * Returns the mosaic metadata given a mosaic id and metadata key. * @param mosaicId - Mosaic identifier. * @param key - Metadata key. * @param publicKey - Sender public key * @returns Observable */ getMosaicMetadataByKeyAndSender(mosaicId: MosaicId, key: string, publicKey: string): Observable; /** * Returns the mosaic metadata given a mosaic id. * @param namespaceId - Namespace identifier. * @param queryParams - Optional query parameters * @returns Observable */ getNamespaceMetadata(namespaceId: NamespaceId, queryParams?: QueryParams): Observable; /** * Returns the mosaic metadata given a mosaic id and metadata key. * @param namespaceId - Namespace identifier. * @param key - Metadata key. * @returns Observable */ getNamespaceMetadataByKey(namespaceId: NamespaceId, key: string): Observable; /** * Returns the namespace metadata given a mosaic id and metadata key. * @param namespaceId - Namespace identifier. * @param key - Metadata key. * @param publicKey - Sender public key * @returns Observable */ getNamespaceMetadataByKeyAndSender(namespaceId: NamespaceId, key: string, publicKey: string): Observable; }