import { KVStore, WalletDB } from '../persistence'; import { Account, AccountDTO, AddressDTO, AddressKey, Balance, RostrumParams, VaultDTO, VaultInfo } from '../types'; import { AssetService } from './asset'; import { KeyManager } from './key'; import { RostrumService } from './rostrum'; import { SessionManager } from './session'; import { TransactionService } from './transaction'; export type WalletEvent = { type: 'new_tip'; tip: number; } | { type: 'new_account'; account: Account; } | { type: 'new_vault'; vault: VaultInfo; } | { type: 'discover_wallet'; loading: boolean; } | { type: 'load_wallet'; loading: boolean; } | { type: 'sync_wallet'; loading: boolean; } | { type: 'account_balance_updated'; accountId: number; balance: Balance; tokensBalance: Record; } | { type: 'vault_balance_updated'; address: string; balance: Balance; } | { type: 'main_address_updated'; address: string; }; export type WalletUpdateCallback = (event: WalletEvent) => void; export declare class WalletManager { private readonly keyManager; private readonly kvStore; private readonly walletDb; private readonly rostrumService; private readonly assetService; private readonly transactionService; private readonly sessionManager; private static readonly GAP_LIMIT; private static readonly DEBOUNCE_MS; private addressResolvers; accounts: Map; accountsAddressToId: Map; receiveAddresses: AddressDTO[]; changeAddresses: AddressDTO[]; vaults: Map; private pendingUpdates; private updateTimer?; private updateCallback?; private readonly discoveryService; constructor(keyManager: KeyManager, kvStore: KVStore, walletDb: WalletDB, rostrumService: RostrumService, assetService: AssetService, transactionService: TransactionService, sessionManager: SessionManager); onUpdate(callback: WalletUpdateCallback): void; private notify; private getAllAddresses; getMainAddresses(): AddressDTO[]; getReceiveAddress(): string; getChangeAddress(accountId?: number): string; getUsedAddressKeys(accountId?: number): AddressKey[]; reloadRostrum(params: RostrumParams): Promise; initRostrum(): Promise; initialize(): Promise; private discoverWallet; private loadWallet; private initialSync; reconnectSync(): Promise; private initState; private deriveAddresses; private deriveAccounts; private saveAddresses; private saveAccounts; private subscribeAddresses; private onSubscribeEvent; private registerUpdate; private processPendingUpdates; private postProcessWalletUpdate; private postProcessAccountsUpdate; private postProcessActivity; private fetchAndUpdateAddress; private fetchAndUpdateAccount; private fetchAndUpdateVault; private checkGapLimit; addNewAccount(id: number, name: string): Promise; updateAccountName(id: number, name: string): Promise; rescanAccount(id: number): void; getVaultNextIndex(): number; addNewVault(address: string, block: number, index: number): Promise; private addVault; rescanVaults(): Promise; private isVaultAddress; private isAccountAddress; private isMainAddress; } //# sourceMappingURL=wallet.d.ts.map