import { Observable } from "rxjs";
import { MosaicDefinition } from "../models/mosaic/MosaicDefinition";
import { MosaicId } from "../models/mosaic/MosaicId";
import { MosaicTransferable } from "../models/mosaic/MosaicTransferable";
import { HttpEndpoint, ServerConfig } from "./HttpEndpoint";
export declare class MosaicHttp extends HttpEndpoint {
    constructor(nodes?: ServerConfig[]);
    /**
     * Gets the mosaic definitions for a given namespace. The request supports paging.
     * @param namespace
     * @param id - The topmost mosaic definition database id up to which root mosaic definitions are returned. The parameter is optional. If not supplied the most recent mosaic definitiona are returned.
     * @param pageSize - The number of mosaic definition objects to be returned for each request. The parameter is optional. The default value is 25, the minimum value is 5 and hte maximum value is 100.
     * @returns Observable<MosaicDefinition[]>
     */
    getAllMosaicsGivenNamespace(namespace: string, id?: number, pageSize?: number): Observable<MosaicDefinition[]>;
    /**
     * Return the Mosaic Definition given a namespace and mosaic. Throw exception if no mosaic is found
     * @param {string} mosaicId
     * @returns {Observable<MosaicDefinition>}
     */
    getMosaicDefinition(mosaicId: MosaicId): Observable<MosaicDefinition>;
    /**
     * Return a MosaicTransferable
     * @param {string} mosaicId
     * @param {number} quantity
     * @returns {Observable<MosaicTransferable>}
     */
    getMosaicTransferableWithAbsoluteAmount(mosaicId: MosaicId, quantity: number): Observable<MosaicTransferable>;
    /**
     * Return a MosaicTransferable
     * @param {string} mosaicId
     * @param {number} quantity
     * @returns {Observable<MosaicTransferable>}
     */
    getMosaicTransferableWithRelativeAmount(mosaicId: MosaicId, quantity: number): Observable<MosaicTransferable>;
}
