import { Currency, UnitList } from "@interlay/monetary-js";
import { ApiPromise } from "@polkadot/api";
import { StorageKey, u32 } from "@polkadot/types";
import { OrmlTraitsAssetRegistryAssetMetadata } from "@polkadot/types/lookup";
import { Option } from "@polkadot/types-codec";
/**
 * @category BTC Bridge
 */
export interface AssetRegistryAPI {
    /**
     * Get all currencies (foreign assets) in the asset registry.
     * @returns A list of currencies.
     */
    getForeignAssetsAsCurrencies(): Promise<Array<Currency<UnitList>>>;
}
export declare type AssetRegistryMetadataTuple = [StorageKey<[u32]>, Option<OrmlTraitsAssetRegistryAssetMetadata>];
export declare class DefaultAssetRegistryAPI {
    private api;
    constructor(api: ApiPromise);
    static metadataToCurrency(metadata: OrmlTraitsAssetRegistryAssetMetadata): Currency<UnitList>;
    getAssetRegistryEntries(): Promise<AssetRegistryMetadataTuple[]>;
    /**
     * Static method to grab onle metadata from entries provided by the asset registry.
     * Ignores entries with no metadata (ie. `Option.isSome !== true`).
     * @param entries The entries from the asset registry.
     * @returns A list of metadata.
     */
    static extractMetadataFromEntries(entries: AssetRegistryMetadataTuple[]): OrmlTraitsAssetRegistryAssetMetadata[];
    getForeignAssetsAsCurrencies(): Promise<Array<Currency<UnitList>>>;
}
