import { ethers } from "ethers"; import { RLNBaseContract } from "./contract/rln_base_contract.js"; import { Keystore } from "./keystore/index.js"; import type { DecryptedCredentials, EncryptedCredentials } from "./keystore/index.js"; import { KeystoreEntity, Password } from "./keystore/types.js"; import { RegisterMembershipOptions, StartRLNOptions } from "./types.js"; import { Zerokit } from "./zerokit.js"; /** * Manages credentials for RLN * It is used to register membership and generate identity credentials */ export declare class RLNCredentialsManager { protected started: boolean; protected starting: boolean; contract: undefined | RLNBaseContract; signer: undefined | ethers.Signer; protected keystore: Keystore; credentials: undefined | DecryptedCredentials; zerokit: Zerokit; constructor(zerokit: Zerokit); get provider(): undefined | ethers.providers.Provider; start(options?: StartRLNOptions): Promise; registerMembership(options: RegisterMembershipOptions): Promise; /** * Changes credentials in use by relying on provided Keystore earlier in rln.start * @param id: string, hash of credentials to select from Keystore * @param password: string or bytes to use to decrypt credentials from Keystore */ useCredentials(id: string, password: Password): Promise; protected determineStartOptions(options: StartRLNOptions, credentials: KeystoreEntity | undefined): Promise; protected static decryptCredentialsIfNeeded(credentials?: EncryptedCredentials | DecryptedCredentials): Promise<{ credentials?: DecryptedCredentials; keystore?: Keystore; }>; protected verifyCredentialsAgainstContract(credentials: KeystoreEntity): Promise; }