///
import '@polkadot/types-augment';
import { _ApiOptions } from '@soul-wallet/extension-base/services/chain-service/handler/types';
import { _ChainConnectionStatus, _EvmApi } from '@soul-wallet/extension-base/services/chain-service/types';
import { PromiseHandler } from '@soul-wallet/extension-base/utils/promise';
import { BehaviorSubject } from 'rxjs';
import Web3 from 'web3';
import { HttpProvider, WebsocketProvider } from 'web3-core';
export declare class EvmApi implements _EvmApi {
chainSlug: string;
api: Web3;
apiUrl: string;
provider: HttpProvider | WebsocketProvider;
apiError?: string;
apiRetry: number;
readonly isApiConnectedSubject: BehaviorSubject;
readonly connectionStatusSubject: BehaviorSubject<_ChainConnectionStatus>;
isApiReady: boolean;
isApiReadyOnce: boolean;
isReadyHandler: PromiseHandler<_EvmApi>;
intervalCheckApi: NodeJS.Timer;
providerName: string;
get isApiConnected(): boolean;
get connectionStatus(): _ChainConnectionStatus;
private updateConnectionStatus;
get isReady(): Promise<_EvmApi>;
updateApiUrl(apiUrl: string): Promise;
recoverConnect(): Promise;
private createProvider;
constructor(chainSlug: string, apiUrl: string, { providerName }?: _ApiOptions);
createIntervalCheckApi(): NodeJS.Timer;
clearIntervalCheckApi(): void;
connect(): void;
disconnect(): Promise;
destroy(): Promise;
onConnect(): void;
onDisconnect(): void;
}