import { _ChainAsset, _ChainInfo } from '@soul-wallet/chain-list/types'; import { _ChainState, _EvmApi, _SubstrateApi } from '@soul-wallet/extension-base/services/chain-service/types'; import DatabaseService from '@soul-wallet/extension-base/services/storage-service/DatabaseService'; import KoniState from './handlers/State'; declare type SubscriptionName = 'balance' | 'crowdloan' | 'stakingOnChain' | 'essentialChainStakingMetadata'; export declare class KoniSubscription { private eventHandler?; private subscriptionMap; dbService: DatabaseService; private state; private logger; constructor(state: KoniState, dbService: DatabaseService); getSubscriptionMap(): Record void) | undefined>; getSubscription(name: SubscriptionName): (() => void) | undefined; updateSubscription(name: SubscriptionName, func: (() => void) | undefined): void; stopAllSubscription(): void; start(): Promise; stop(): Promise; subscribeBalancesAndCrowdloans(address: string, chainInfoMap: Record, chainStateMap: Record, substrateApiMap: Record, web3ApiMap: Record, onlyRunOnFirstTime?: boolean): void; subscribeStakingOnChain(address: string, substrateApiMap: Record, onlyRunOnFirstTime?: boolean): void; initStakingOnChainSubscription(addresses: string[], substrateApiMap: Record, onlyRunOnFirstTime?: boolean): (() => void) | undefined; initEssentialChainStakingMetadataSubscription(substrateApiMap: Record, onlyRunOnFirstTime?: boolean): (() => void) | undefined; initBalanceSubscription(addresses: string[], chainInfoMap: Record, chainStateMap: Record, substrateApiMap: Record, evmApiMap: Record, onlyRunOnFirstTime?: boolean): (() => void) | undefined; initCrowdloanSubscription(addresses: string[], substrateApiMap: Record, onlyRunOnFirstTime?: boolean): (() => void) | undefined; subscribeNft(address: string, substrateApiMap: Record, evmApiMap: Record, smartContractNfts: _ChainAsset[], chainInfoMap: Record): void; initNftSubscription(addresses: string[], substrateApiMap: Record, evmApiMap: Record, smartContractNfts: _ChainAsset[], chainInfoMap: Record): void; subscribeStakingReward(address: string): Promise; subscribeStakingRewardFastInterval(address: string): Promise; reloadStaking(): Promise; } export {};