/**
 * @license
 * SKALE Metaport
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
/**
 * @file contracts.ts
 * @copyright SKALE Labs 2023-Present
 */
import { CustomAbiTokenType, TokenType } from './dataclasses';
export declare const ERC_ABIS: {
    [tokenType in CustomAbiTokenType | TokenType]: {
        ['abi']: any;
    };
};
export declare const IMA_ADDRESSES: {
    mainnet: {
        message_proxy_mainnet_address: string;
        linker_address: string;
        community_pool_address: string;
        deposit_box_eth_address: string;
        deposit_box_erc20_address: string;
        deposit_box_erc721_address: string;
        deposit_box_erc1155_address: string;
        deposit_box_erc721_with_metadata_address: string;
    };
    staging: {
        message_proxy_mainnet_address: string;
        linker_address: string;
        community_pool_address: string;
        deposit_box_eth_address: string;
        deposit_box_erc20_address: string;
        deposit_box_erc721_address: string;
        deposit_box_erc1155_address: string;
        deposit_box_erc721_with_metadata_address: string;
    };
    legacy: {
        message_proxy_mainnet_address: string;
        linker_address: string;
        community_pool_address: string;
        deposit_box_eth_address: string;
        deposit_box_erc20_address: string;
        deposit_box_erc721_address: string;
        deposit_box_erc1155_address: string;
        deposit_box_erc721_with_metadata_address: string;
    };
    regression: {
        message_proxy_mainnet_address: string;
        linker_address: string;
        community_pool_address: string;
        deposit_box_eth_address: string;
        deposit_box_erc20_address: string;
        deposit_box_erc721_address: string;
        deposit_box_erc1155_address: string;
        deposit_box_erc721_with_metadata_address: string;
    };
};
export declare const IMA_ABIS: {
    mainnet: {
        message_proxy_mainnet_address: string;
        message_proxy_mainnet_abi: ({
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            stateMutability?: undefined;
            payable?: undefined;
            outputs?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: ({
                type: string;
                name: string;
                components?: undefined;
            } | {
                type: string;
                name: string;
                components: {
                    type: string;
                    name: string;
                }[];
            })[];
            outputs: any[];
            anonymous?: undefined;
            stateMutability?: undefined;
        })[];
        linker_address: string;
        linker_abi: ({
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            payable?: undefined;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: any[];
            anonymous?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        })[];
        community_pool_address: string;
        community_pool_abi: ({
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            stateMutability?: undefined;
            payable?: undefined;
            outputs?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
            stateMutability?: undefined;
        })[];
        deposit_box_eth_address: string;
        deposit_box_eth_abi: ({
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            stateMutability?: undefined;
            payable?: undefined;
            outputs?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: any[];
            anonymous?: undefined;
            stateMutability?: undefined;
        })[];
        deposit_box_erc20_address: string;
        deposit_box_erc20_abi: ({
            type: string;
            name: string;
            inputs: any[];
            anonymous?: undefined;
            constant?: undefined;
            payable?: undefined;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            payable?: undefined;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: any[];
            anonymous?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        })[];
        deposit_box_erc721_address: string;
        deposit_box_erc721_abi: ({
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            payable?: undefined;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: any[];
            anonymous?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        })[];
        deposit_box_erc1155_address: string;
        deposit_box_erc1155_abi: ({
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            payable?: undefined;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: any[];
            anonymous?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        })[];
        deposit_box_erc721_with_metadata_abi: ({
            type: string;
            anonymous: boolean;
            name: string;
            inputs: {
                type: string;
                name: string;
                indexed: boolean;
            }[];
            constant?: undefined;
            payable?: undefined;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: any[];
            anonymous?: undefined;
            stateMutability?: undefined;
        } | {
            type: string;
            name: string;
            constant: boolean;
            stateMutability: string;
            payable: boolean;
            inputs: {
                type: string;
                name: string;
            }[];
            outputs: {
                type: string;
                name: string;
            }[];
            anonymous?: undefined;
        })[];
        deposit_box_erc721_with_metadata_address: string;
    };
    schain: {
        ERC1155OnChain_abi: ({
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
            name?: undefined;
            outputs?: undefined;
        } | {
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            stateMutability?: undefined;
            outputs?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        ERC20OnChain_abi: ({
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
            name?: undefined;
            outputs?: undefined;
        } | {
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            stateMutability?: undefined;
            outputs?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        ERC721OnChain_abi: ({
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
            name?: undefined;
            outputs?: undefined;
        } | {
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            stateMutability?: undefined;
            outputs?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        community_locker_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        } | {
            inputs: ({
                internalType: string;
                name: string;
                type: string;
                components?: undefined;
            } | {
                components: {
                    internalType: string;
                    name: string;
                    type: string;
                }[];
                internalType: string;
                name: string;
                type: string;
            })[];
            name: string;
            outputs: any[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        community_locker_address: string;
        eth_erc20_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        eth_erc20_address: string;
        key_storage_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: any[];
            name: string;
            outputs: {
                components: {
                    components: {
                        internalType: string;
                        name: string;
                        type: string;
                    }[];
                    internalType: string;
                    name: string;
                    type: string;
                }[];
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        key_storage_address: string;
        message_proxy_chain_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: ({
                internalType: string;
                name: string;
                type: string;
                components?: undefined;
            } | {
                components: {
                    internalType: string;
                    name: string;
                    type: string;
                }[];
                internalType: string;
                name: string;
                type: string;
            })[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        message_proxy_chain_address: string;
        proxy_admin_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        proxy_admin_address: string;
        token_manager_erc1155_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        token_manager_erc1155_address: string;
        token_manager_erc20_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        token_manager_erc20_address: string;
        token_manager_erc721_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        token_manager_erc721_address: string;
        token_manager_erc721_with_metadata_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        token_manager_erc721_with_metadata_address: string;
        token_manager_eth_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        token_manager_eth_address: string;
        token_manager_linker_abi: ({
            anonymous: boolean;
            inputs: {
                indexed: boolean;
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            type: string;
            outputs?: undefined;
            stateMutability?: undefined;
        } | {
            inputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            name: string;
            outputs: {
                internalType: string;
                name: string;
                type: string;
            }[];
            stateMutability: string;
            type: string;
            anonymous?: undefined;
        })[];
        token_manager_linker_address: string;
    };
};
