import { AbstractBlockchainController, AbstractNameService, BlockchainControllerFactory, ExternalYlidePublicKey, IBlockchainSourceSubject, IExtraEncryptionStrateryBulk, IExtraEncryptionStrateryEntry, IMessage, IMessageContent, IMessageCorruptedContent, ISourceSubject, LowLevelMessagesSource, MessageKey, Uint256 } from '@ylide/sdk'; import { EVMMailerContractType, EVMNetwork, EVMRegistryContractType, IEVMMailerContractLink, IEVMMessage, IEVMRegistryContractLink } from '../misc'; import { EthereumBlockchainReader, IRPCDescriptor } from './helpers/EthereumBlockchainReader'; import { EthereumContentReader } from './helpers/EthereumContentReader'; import { EthereumRegistryV3Wrapper } from '../contract-wrappers/EthereumRegistryV3Wrapper'; import { EthereumRegistryV4Wrapper } from '../contract-wrappers/EthereumRegistryV4Wrapper'; import { EthereumRegistryV5Wrapper } from '../contract-wrappers/EthereumRegistryV5Wrapper'; import { EthereumRegistryV6Wrapper } from '../contract-wrappers/EthereumRegistryV6Wrapper'; import { EthereumMailerV6Wrapper } from '../contract-wrappers/EthereumMailerV6Wrapper'; import { EthereumMailerV7Wrapper } from '../contract-wrappers/EthereumMailerV7Wrapper'; import { EthereumMailerV8Wrapper } from '../contract-wrappers/v8/EthereumMailerV8Wrapper'; export declare class EthereumBlockchainController extends AbstractBlockchainController { private readonly options; readonly blockchainReader: EthereumBlockchainReader; readonly contentReader: EthereumContentReader; readonly network: EVMNetwork; readonly chainId: number; static readonly mailerWrappers: Record; static readonly registryWrappers: Record; readonly mailers: { link: IEVMMailerContractLink; wrapper: EthereumMailerV8Wrapper | EthereumMailerV7Wrapper | EthereumMailerV6Wrapper; }[]; readonly registries: { link: IEVMRegistryContractLink; wrapper: EthereumRegistryV3Wrapper | EthereumRegistryV4Wrapper | EthereumRegistryV5Wrapper | EthereumRegistryV6Wrapper; }[]; readonly currentMailer: { link: IEVMMailerContractLink; wrapper: EthereumMailerV8Wrapper; }; readonly currentRegistry: { link: IEVMRegistryContractLink; wrapper: EthereumRegistryV5Wrapper; }; constructor(options?: { network?: EVMNetwork; rpcs?: IRPCDescriptor[]; }); blockchain(): string; blockchainGroup(): string; init(): Promise; defaultNameService(): AbstractNameService | null; isReadingBySenderAvailable(): boolean; isAddressValid(address: string): boolean; addressToUint256(address: string): Uint256; isValidMsgId(msgId: string): boolean; getMessageByMsgId(msgId: string): Promise; getRecipientReadingRules(address: Uint256): Promise; getBlockchainSourceSubjects(subject: ISourceSubject): IBlockchainSourceSubject[]; ininiateMessagesSource(subject: IBlockchainSourceSubject): LowLevelMessagesSource; retrieveMessageContent(msg: IEVMMessage): Promise; extractPublicKeyFromAddress(address: string): Promise; extractPublicKeysHistoryByAddress(address: string): Promise; getBalance(address: string): Promise<{ original: string; numeric: number; e18: string; }>; getExtraEncryptionStrategiesFromAddress(address: string): Promise; getSupportedExtraEncryptionStrategies(): string[]; prepareExtraEncryptionStrategyBulk(entries: IExtraEncryptionStrateryEntry[]): Promise; executeExtraEncryptionStrategy(entries: IExtraEncryptionStrateryEntry[], bulk: IExtraEncryptionStrateryBulk, addedPublicKeyIndex: number | null, messageKey: Uint8Array): Promise; compareMessagesTime: (a: IMessage, b: IMessage) => number; } export declare const evmBlockchainFactories: Record;