import { ChainId } from '@uniswap/sdk-core';
export declare const DELEGATION_MAGIC_PREFIX = "0xef0100";
/**
 * The target address for self-calls is address(0)
 */
export declare const SELF_CALL_TARGET = "0x0000000000000000000000000000000000000000";
/**
 * Call types for smart wallet calls
 * Follows ERC-7579
 */
export declare enum ModeType {
    BATCHED_CALL = "0x0100000000000000000000000000000000000000000000000000000000000000",
    BATCHED_CALL_CAN_REVERT = "0x0101000000000000000000000000000000000000000000000000000000000000"
}
/**
 * Supported chain ids
 */
export declare enum SupportedChainIds {
    MAINNET = 1,
    UNICHAIN = 130,
    UNICHAIN_SEPOLIA = 1301,
    SEPOLIA = 11155111,
    BASE = 8453,
    OPTIMISM = 10,
    BNB = 56,
    ARBITRUM_ONE = 42161,
    XLAYER = 196
}
/**
 * Supported smart wallet versions
 * @dev keyed by github release tag
 */
export declare enum SmartWalletVersion {
    LATEST = "latest",
    v1_0_0 = "v1.0.0",
    v1_0_0_staging = "v1.0.0-staging"
}
type SmartWalletVersionMap = Partial<{
    [_version in SmartWalletVersion]: `0x${string}`;
}> & {
    [SmartWalletVersion.LATEST]: `0x${string}`;
};
/**
 * Smart wallet versions for supported chains
 */
export declare const SMART_WALLET_VERSIONS: {
    [_chainId in SupportedChainIds]: SmartWalletVersionMap;
};
/**
 * Mapping of chainId to Smart Wallet contract addresses
 * @dev Used to get the latest version of the smart wallet
 *      See README for detailed deployment addresses along with the commit hash
 * @deprecated Use getSmartWalletAddress() instead of indexing this map directly.
 */
export declare const SMART_WALLET_ADDRESSES: Record<string | number, `0x${string}`>;
/**
 * Get all historical smart wallet versions for a given chain id
 */
export declare const getAllSmartWalletVersions: (chainId: SupportedChainIds) => `0x${string}`[];
/**
 * Get the latest Smart Wallet address for a given chain id.
 * Normalizes string ids to numbers and guards against prototype pollution.
 */
export declare function getSmartWalletAddress(chainIdLike: number | string | ChainId): `0x${string}`;
export {};
