import { ChainGrpcIbcApi } from '../client/chain';
import { TokenMetaUtil, TokenType, TokenMeta, IbcToken, Token } from '../token-metadata';
import { Network } from '../networks';
export declare const getTokenTypeFromDenom: (denom: string) => TokenType;
export declare const checkIsIbcDenomCanonical: (path: string) => boolean;
export declare const tokenMetaToToken: (tokenMeta: TokenMeta | undefined, denom: string) => Token | undefined;
/**
 * @group Util
 */
export declare class Denom {
    protected denom: string;
    protected ibcApi: ChainGrpcIbcApi;
    protected tokenMetaUtil: TokenMetaUtil;
    constructor(denom: string, network?: Network);
    getPeggyDenomToken(): Promise<Token>;
    getIbcDenomToken(): Promise<IbcToken>;
    getDenomToken(): Promise<Token>;
    getDenomTokenThrow(): Promise<Token>;
    getCoinGeckoId(): string;
    getTokenMetaDataBySymbol(): TokenMeta | undefined;
    getTokenMetaDataByAddress(): TokenMeta | undefined;
    fetchDenomTrace(): Promise<{
        path: string;
        baseDenom: string;
    }>;
    private getPeggyDenomTokenMeta;
    private getIbcDenomTokenMeta;
    private getDenomTokenMeta;
}
