import { Contract, Signer, PopulatedTransaction, providers } from 'ethers'; import { Config } from './config'; export type WalletDB = { privateAmountOf: (vaultAddress: string, address: string, idHash: string | bigint) => Promise; setPrivateAmount: (sender: string, vaultAddress: string, address: string, idHash: string, amount: string) => Promise; getAddressByContactId: (id: string) => Promise; getPublicKey: (address: string) => Promise; registerKeys: (publicKey: string, encryptedPrivateKey: string, encryptedSecret: string, hashedContactId: string, encryptedContactId: string) => Promise; getEncryptedPrivateKey: (address: string) => Promise; getEncryptedContactId: (addres: string) => Promise; getValue: (address: string, key: string) => Promise; setValue: (address: string, key: string, value: string) => Promise; getFileIndex: (address: string) => Promise; setFileIndex: (address: string, value: string) => Promise; getCredentialIndex: (address: string) => Promise; setCredentialIndex: (address: string, value: string) => Promise; setCredentialStatus: (hash: string, bool: any) => Promise; }; export declare class NotVault { confidentialWallet?: Contract; confidentialVault?: Contract; confidentialDeal?: Contract; confidentialOracle?: Contract; confidentialServiceBus?: Contract; confidentialGroup?: Contract; signer?: Signer; config?: Config; chainId?: string; db?: WalletDB; constructor(db?: WalletDB); init: (chainId?: string, signer?: Signer, config?: Config) => void; private address?; private publicKey?; private privateKey?; private contactId?; login: (address: string, decryptCallback: (encryptedSecret: string) => Promise, successCallback: (publicKey: string, contactId: string) => Promise, enterSecretCallback: () => Promise, registerCallback: () => Promise) => Promise; register: (address: string, contactId: string, secretKey: string, encryptionPublicKeyCallback: () => Promise, successCallback: (publicKey: string, contactId: string) => Promise) => Promise; enterSecret: (address: string, secretKey: string, successCallback: (publicKey: string, contactId: string) => Promise) => Promise; enterData: (address: string, privateKey: string, contactId: string) => Promise; getWalletData: () => { address: string | undefined; publicKey: string | undefined; contactId: string | undefined; }; decrypt: (data: any) => Promise; encryptSign: (toPublicKey: string, data: any) => Promise; sign: (data: any) => Promise<{ message: any; signature: string; }>; getValue: (key: string) => Promise; setValue: (key: string, value: string) => Promise; setValueTx: (key: string, value: string) => Promise; _setValue: (key: string, value: string) => Promise; signTx: (tx: PopulatedTransaction, getNonce?: () => Promise) => Promise<{ tx: PopulatedTransaction; signature: string; }>; signMetaTx: (tx: PopulatedTransaction, amount: BigInt, getNonce?: () => Promise) => Promise<{ tx: PopulatedTransaction; messageHash: string; signature: string; address: string; amount: BigInt; }>; sendTx: (stx: string, provider?: providers.Provider) => Promise; getFileIndex: () => Promise; setFileIndex: (value: string) => Promise; setFileIndexTx: (value: string) => Promise; getCredentialIndex: () => Promise; setCredentialIndex: (value: string) => Promise; setCredentialIndexTx: (value: string) => Promise; getPublicKeyByContactId: (owner: string) => Promise; }