import { BaseCoin } from '@bitgo/sdk-core';
import { BitGoAPI, BitGoAPIOptions } from '@bitgo/sdk-api';
import { TrimmedAmsTokenConfig } from '@bitgo/statics';
export type BitGoOptions = BitGoAPIOptions & {
    useAms?: boolean;
};
export declare class BitGo extends BitGoAPI {
    private _coinFactory;
    private _useAms;
    /**
     * Constructor for BitGo Object
     */
    constructor(params?: BitGoOptions);
    /**
     * Initialize the coin factory with token configurations
     * @param tokenConfigMap - A map of token metadata from AMS
     */
    initCoinFactory(tokenConfigMap: Record<string, TrimmedAmsTokenConfig[]>): void;
    /**
     * Fetch all the tokens and initialize the coin factory
     */
    registerAllTokens(): Promise<void>;
    /**
     * Create a basecoin object
     * @param coinName
     */
    coin(coinName: string): BaseCoin;
    /**
     * Register a token in the coin factory
     * @param tokenConfig - The token metadata from AMS
     */
    registerToken(tokenName: string): Promise<void>;
    /**
     * Create a basecoin object for a virtual token
     * @param tokenName
     */
    token(tokenName: string): Promise<BaseCoin>;
}
//# sourceMappingURL=bitgo.d.ts.map