import type { MoneyLayer } from './types';
export type M2TokenCapabilities = {
    symbol: string;
    name: string;
    address: string;
    decimals: number;
    native?: boolean;
    currencyCode?: string;
    moneyLayer: MoneyLayer;
    omnlLine: string;
    loadFromGl: string;
    swappable: boolean;
    convertible: boolean;
    transferableInternal: boolean;
    transferableExternal: boolean;
};
export type M2TokenRegistryFile = {
    version: string;
    chainId: number;
    defaultMoneyLayer: MoneyLayer;
    defaultLoadFromGl: string;
    tokens: M2TokenCapabilities[];
};
export declare function inferCurrencyCode(symbol: string): string;
export declare function resolveOmnlLineM2(currencyCode?: string, symbol?: string): string;
export declare function withM2Capabilities(token: {
    symbol: string;
    name: string;
    address: string;
    decimals: number;
    native?: boolean;
    currencyCode?: string;
    omnlLine?: string;
}, overrides?: Partial<M2TokenCapabilities>): M2TokenCapabilities;
export declare function mergeExchangeTokensWithM2Registry(baseTokens: {
    symbol: string;
    name: string;
    address: string;
    decimals: number;
    native?: boolean;
    omnlLine?: string;
}[], registry: M2TokenRegistryFile): M2TokenCapabilities[];
export declare function findM2TokenByAddress(registry: M2TokenRegistryFile, address: string): M2TokenCapabilities | undefined;
export declare function findM2TokenBySymbol(registry: M2TokenRegistryFile, symbol: string): M2TokenCapabilities | undefined;
