import { ChainId } from "../chain";
import { Service } from "../common";
import { Context } from "../context";
import { Address, Alias, AliasMap, AssetServiceState, Icon, IconMap } from "../types";
/**
 * [[AssetService]] fetches correct icons & aliases related to eth addresses
 * from trusted asset sources
 */
export declare class AssetService extends Service {
    static deserializeState(data: string): AssetServiceState;
    ready: Promise<void>;
    supported: Map<Address, string>;
    aliases: Map<Address, Alias>;
    private alts;
    constructor(chainId: ChainId, ctx: Context, state?: AssetServiceState);
    makeSerializedState(): Promise<string>;
    private initialize;
    /**
     * Get an icon url for a particular address.
     * @param address
     */
    icon<T extends Address>(address: T): Icon;
    /**
     * Get a map of icons for a list of addresses.
     * @param addresses
     */
    icon<T extends Address>(addresses: T[]): IconMap<T>;
    icon<T extends Address>(address: T | T[]): IconMap<T> | Icon;
    /**
     * Get an alias for a particular address.
     * @param address
     */
    alias<T extends Address>(address: T): Alias | undefined;
    /**
     * Get a map of aliases for a list of addresses.
     * @param addresses
     */
    alias<T extends Address>(addresses: T[]): AliasMap<T>;
    alias<T extends Address>(address: T | T[]): AliasMap<T> | Alias | undefined;
}
