import { ethers } from "ethers"; export interface CustomQueryOptions extends FetchMembersOptions { membersFilter: ethers.EventFilter; } export type Member = { idCommitment: string; index: ethers.BigNumber; }; export interface RLNContractOptions { signer: ethers.Signer; address: string; rateLimit?: number; } export interface RLNContractInitOptions extends RLNContractOptions { contract?: ethers.Contract; } export interface MembershipRegisteredEvent { idCommitment: string; membershipRateLimit: ethers.BigNumber; index: ethers.BigNumber; } export type FetchMembersOptions = { fromBlock?: number; fetchRange?: number; fetchChunks?: number; }; export interface MembershipInfo { index: ethers.BigNumber; idCommitment: string; rateLimit: number; startBlock: number; endBlock: number; state: MembershipState; depositAmount: ethers.BigNumber; activeDuration: number; gracePeriodDuration: number; holder: string; token: string; } export declare enum MembershipState { Active = "Active", GracePeriod = "GracePeriod", Expired = "Expired", ErasedAwaitsWithdrawal = "ErasedAwaitsWithdrawal" }