import { Address } from 'viem';
import { ChainId } from '../api/vault-config.mjs';
import 'viem/chains';
import './config.mjs';

declare const TokenKey: {
    readonly ETH: "eth";
    readonly WETH: "weth";
    readonly WSTETH: "wsteth";
    readonly EZETH: "ezeth";
    readonly PZETH: "pzeth";
    readonly OPNRWA: "op-nRWA";
    readonly NRWA: "nRWA";
    readonly PUSD: "pUSD";
    readonly PLUME: "plume";
    readonly USDC: "usdc";
    readonly USDCe: "usdce";
};
type TokenKey = (typeof TokenKey)[keyof typeof TokenKey] | string;
declare const NucleusTokenKey: {
    readonly BOBAETH: "bobaeth";
    readonly SSETH: "sseth";
    readonly FETH: "feth";
    readonly RARIETH: "rarieth";
};
type NucleusTokenKey = (typeof NucleusTokenKey)[keyof typeof NucleusTokenKey];
interface Token {
    key: TokenKey | NucleusTokenKey;
    name: string;
    fullName?: string;
    symbol: string;
    addresses: Partial<Record<ChainId, Address>>;
    rateOracles?: Partial<Record<ChainId, Address>>;
    coinGeckoId?: string;
}
declare const tokenConfig: Record<TokenKey, Token>;
declare const nucleusTokenConfig: Record<NucleusTokenKey, Token>;

export { NucleusTokenKey, type Token, TokenKey, nucleusTokenConfig, tokenConfig };
