import { Address } from 'viem';
import { KnownChainId, KnownTokenId } from '../utils/types/knownIds.js';
import '../xlinkSdkUtils/types.js';
import '../utils/BigNumber.js';
import 'big.js';
import '../utils/typeHelpers.js';

type EVMChain = KnownChainId.EVMChain;
declare const EVMChain: typeof KnownChainId.EVM;
type EVMToken = KnownTokenId.EVMToken;
declare const EVMToken: typeof KnownTokenId.EVM;
type EVMEndpointContract = typeof EVMEndpointContract.BridgeEndpoint | typeof EVMEndpointContract.NativeBridgeEndpoint | typeof EVMEndpointContract.BridgeConfig | typeof EVMEndpointContract.TimeLock | typeof EVMEndpointContract.Registry;
declare namespace EVMEndpointContract {
    const BridgeEndpoint = "BridgeEndpoint";
    const NativeBridgeEndpoint = "NativeBridgeEndpoint";
    const BridgeConfig = "BridgeConfig";
    const TimeLock = "TimeLock";
    const Registry = "Registry";
}
type EVMOnChainAddresses = Partial<Record<EVMEndpointContract | EVMToken, Address>>;
declare const evmContractAddresses: Record<EVMChain, EVMOnChainAddresses>;

export { EVMChain, EVMEndpointContract, type EVMOnChainAddresses, evmContractAddresses };
